序号 | 文件 | 代码行 | 处理完成否 |
|
|
|
|
n 查找所有的文本输入控件
通过文件查找前台所有的””text””,”’text’”,”type=text”,”textarea”,”textbox”字样,筛选出含文本输入的控件,这些控件包括:
<input type="text" />
<textarea></textarea>
<asp:TextBox runat="server"></asp:TextBox>
n 查找所有带参数的URL
通过文件查找所有的”aspx?”,”html?”,”htm?”,”.svc”(随系统的文件后缀方案而定),筛选出所有带参数的URL。
n 查找所有的ajax
通过文件查找前台中所有的”ajax”,筛选出所有的ajax输入。
n 查找所有cookie
通过文件查找所有的”cookie”,找出所有设置cookie的地方。
n 查找所有session
通过文件查找所有的” session”,找出所有设置session的地方。
n 处理以上查找的结果
分别将其对应的输出查找出来,然后汇集为如下的表格:
序号 | 前台文件 | 输入出代码行 | 输出文件 | 为输出赋值的代码行 | 处理完成否 |
|
|
|
|
|
|
n 查找遗漏
为了防止遗漏,需要直接查找输出,通过文件查找所有的”Response.Write”(后台),” innerHTML”(前台),”document.write”(前台)。将遗漏更新到上面的表格中。
注意,实际上,如果将应用程序变量和数据库内容赋值给前台控件,通过这种方式还是不能找到遗漏的,只能依赖于前面的输入的查找来一定程度上避免这种情况。
n 根据以下表格中的处理方法来处理上面统计出来的表格中的代码行,为输出Encode
为了防范XSS攻击,我们可以使用Anti-Cross Site Scripting Library(查看http://msdn.microsoft.com/en-us/library/aa973813.aspx,不过当前版本已经到了4.2.1,下载地址为:http://www.microsoft.com/en-us/download/details.aspx?id=28589)
该Library提供如下的几个函数,分别对不同的应用场景作出处理:
Encoding Method | Should Be Used If … | Example/Pattern |
HtmlEncode | Untrusted input is used in HTML output except when assigning to an HTML attribute. | <a href="http://www.contoso.com">Click Here [Untrusted input]</a> |
HtmlAttributeEncode | Untrusted input is used as an HTML attribute | <hr noshade size=[Untrusted input]> |
JavaScriptEncode | Untrusted input is used within a JavaScript context | <script type="text/javascript"> … [Untrusted input] … </script> |
UrlEncode | Untrusted input is used in a URL (such as a value in a querystring) | <a href="http://search.msn.com/results.aspx?q=[Untrusted-input]">Click Here!</a> |
VisualBasicScriptEncode | Untrusted input is used within a Visual Basic Script context | <script type="text/vbscript" language="vbscript"> … [Untrusted input] … </script> |
XmlEncode | Untrusted input is used in XML output, except when assigning to an XML attribute | <xml_tag>[Untrusted input]</xml_tag> |
XmlAttributeEncode | Untrusted input is used as an XML attribute | <xml_tag attribute=[Untrusted input]>Some Text</xml_tag> |
n 确保配置web.config中的validateRequest="true"
n 确保Cookie的httponly
通过文件查找所有的”cookie”,找出所有设置cookie的地方,为用于认证的cookie设置如下的格式:
Set-Cookie: cookieName=cookieValue;httponly
参考:
http://msdn.microsoft.com/en-us/library/ff649310.aspx
http://msdn.microsoft.com/en-us/library/aa973813.aspx
本文出处:http://www.cnblogs.com/luminji/本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。