总体修复方式:验证所有输入数据,有效检测攻击;对所有输出数据进行适当的编码,以防止任何已成功注入的脚本在浏览器端运行。具体如下 :
1、输入验证:某个数据被接受为可被显示或存储之前,使用标准输入验证机制,验证所有输入数据的长度、类型、语法以及业务规则。
2、输出编码:数据输出前,确保用户提交的数据已被正确进行entity编码,建议对所有字符进行编码而不仅局限于某个子集。
3、明确指定输出的编码方式:不要允许攻击者为你的用户选择编码方式(如ISO8859-1或 UTF 8)。
4、警惕规范化错误:验证输入之前,必须进行解码及规范化以符合应用程序当前的内部表示方法。请确定应用程序对同一输入不做两次解码。
对客户端提交的数据进行过滤,一般建议过滤掉双引号(”)、尖括号(<、>)等特殊字符,或者对客户端提交的数据中包含的特殊字符进行实体转换,如下所示
1、以下为需过滤的常见字符:
[1] |(竖线符号)
[2] & (& 符号)
[3];(分号)
[4] $(美元符号)
[5] %(百分比符号)
[6] @(at 符号)
[7] '(单引号)
[8] "(引号)
[9] \'(反斜杠转义单引号)
[10] \"(反斜杠转义引号)
[11] <>(尖括号)
[12] ()(括号)
[13] +(加号)
[14] CR(回车符,ASCII 0x0d)
[15] LF(换行,ASCII 0x0a)
[16] ,(逗号)
[17] \(反斜杠)
5、在不影响应用的前提下,建议将cookie标记为httpOnly,同时禁用TRACE方法。
6、html实体编码
相关文章
- 常见Web漏洞的修复建议手册
- 浅淡常见的WEB安全漏洞测试及验证
- 常见web安全漏洞修复方案(全面)
- Web安全测试之XSS(跨站脚本攻击) XSS 全称(Cross Site Scripting) 跨站脚本攻击, 是Web程序中最常见的漏洞。指攻击者在网页中嵌入客户端脚本(例如JavaScript), 当用户浏览此网页时,脚本就会在用户的浏览器上执行,从而达到攻击者的目的. 比如获取用户的Cookie,导航到恶意网站,携带木马等。
- Web开发常见的几个漏洞解决方法 (转)
- 浅淡常见的WEB安全漏洞测试及验证
- Web渗透测试漏洞手册及修复建议
- 常见的Web应用的漏洞总结(原理、危害、防御)
- 转载过来的参考内容---常规36个WEB渗透测试漏洞描述及修复方法----很详细
- 关于Redis未授权访问漏洞利用的介绍与修复建议