开发人员需要牢记的HTML 5安全问题
文章来源:IT工程信息网 http://www.systhinker.com/html/88/n-14088.html
应用程序安全专家表示,HTML5给开发人员带来了新的安全挑战。苹果公司与Adobe公司之间的口水战带来对 HTML 5命运的诸多猜测,尽管HTML 5的实现还有很长的路要走,但可以肯定的一点是,运用HTML5的开发人员将需要为应用程序安全开发生命周期部署新的安全功能以应对HTML5带来的安全挑战。
应用程序安全专家表示,HTML5给开发人员带来了新的安全挑战。
苹果公司与Adobe公司之间的口水战带来对HTML 5命运的诸多猜测,尽管HTML 5的实现还有很长的路要走,但可以肯定的一点是,运用HTML 5的开发人员将需要为应用程序安全开发生命周期部署新的安全功能以应对HTML5带来的安全挑战。
那么HTML5将会对我们需要覆盖的攻击面带来怎样的影响?本文将探讨关于HTML 5几个重要安全问题。
客户端存储
早期版本的HTML仅允许网站将cookies作为本地信息存储,而这些空间相对较小,仅适用于存储简单的档案信息或者作为存储在其他位置的数据(例如会话ID)的标识符,Denim集团应用程序安全研究部门的主管Dan Cornell表示。然而,HTML5 LocalStorage则允许浏览器本地存储大量据库,允许使用新类型应用程序。
“随之而来的风险就是,敏感数据可能被存储在本地用户工作站,而物理访问或者破坏该工作站的攻击者,就能够轻松获得敏感数据,”Cornell 表示,“这对于使用共享计算机的用户更加危险。”
“从定义上来说,它真的只是能够在客户端系统存储信息,”Rapid7公司的安全研究人员Josh Abraham表示,“那么你就具备基于客户端SQL注入攻击的潜在能力,或者可能你的某个客户端的数据库是恶意的,当与生产系统同步时,则可能出现同步问题,或者客户端的潜在恶意数据将被插入到生产系统。”
为了解决这个问题,开发人员需要能够验证数据是否为恶意的,这其实是个很复杂的问题。
对于这个问题的重要性并不是所有人都赞同。Veracode公司首席技术官Chris Wysopal表示,例如web应用程序通过使用插件或者浏览器扩展存储数据客户端就一直存在很多方法。
“有很多已知的方法可以操控目前部署的HTML5 SessionStorage属性,但是标准最终确定时,这个问题才会解决,”Wysopal表示。
跨域通信
而其他版本的HTML可能直允许JavaScript发出XML HTTP
相关文档:
html 超链接 属性
HTML 使用超级链接与网络上的另一个文档相连。
锚标签和 Href 属性
HTML 使用 <a> (锚)标签来创建连接另一个文档的链接。
锚可以指向网络上的任何资源:一张 HTML 页面,一幅图像,一个声音或视频文件等等。
创建锚的语法:
<a href="url">Text to be displayed</a>
例如:
& ......
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=gb2312" http-equiv="Content-Type" />
<title>简单的测试页面</title> ......
XML和HTML常用转义字符
XML和HTML中都有一些特殊的字符,这些字符在XML和HTML中是不能直接使用的,如果必须使用这些字符,应该使用其对应的转义字符。
如果在XML文档中使用类似"<" 的字符, 那么解析器将会出现错误,因为解析器会认为这是一个新元素的开始。
所以不应该像下面那样书写代码:
<message&g ......
凸线边框(宽度10,红色)
分组框 代码
<fieldset style="border:10px ridge #FF0000; padding:2px; width:500">
<legend>分组框</legend>
</fieldset>
凹线
分组框 代码
<fieldset style="border:10px groove #FF0000; padding:2px; width:500">
<legend>分组框</legen ......
<%
'调试:JAVA中文网:www.javaweb.cc/
'注意,按照所放置的目录不同请修改objXmlHttp和生成首页路径
dim objXmlHttp,binFileData,objAdoStream
set objXmlHttp = Server.CreateObject("Microsoft.XMLHTTP")
objXmlHttp.open "GET","http://"&request.ServerVariables("HTTP_HOST")&"/index.asp",false ......