PHP-xss漏洞通用解决方案
可能重复的问题
如何有效防止XSS攻击/AJAX跨域攻击
最近项目开发中,出现了xss漏洞的问题,最后解决是直接编码$_REQUEST变量。
请问大家在做系统时有没有更好的通用性解决方案
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
可能重复的问题
如何有效防止XSS攻击/AJAX跨域攻击
最近项目开发中,出现了xss漏洞的问题,最后解决是直接编码$_REQUEST变量。
请问大家在做系统时有没有更好的通用性解决方案
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
XSS攻击可能出现的地方大多是在以下地方:
搜索关键词
用户昵称
富文本编辑器
url跳转
cgi自定义回调函数
对于XSS攻击,一般采用以下方式:
接收参数时:过滤危险代码、限定可处理参数范围
前台提交前:过滤危险代码、对HTML进行转义
后台接受后:过滤危险代码、对HTML进行转义
后台输出前:过滤危险代码、过滤自定义回调函数名
前台输出前:过滤危险代码、避免使用document.write
反跳页面:只对可信域和白名单进行跳转
在接收URL参数时不应该带有任何可执行代码,因而强制过滤关键字,对其中符号“+”、“-”、“<”、“>”、“'”、“"”、“/”、“&”、“$”进行转义:encodeURIComponent()
这样操作后一般都能避免
xss攻击,可以运用方法都测试是否是攻击
function xss_check() {
$tmp = strtoupper(urldecode(urldecode($_SERVER['REQUEST_URI'])));
if(strpos($tmp, '<') !== false || strpos($tmp, '"') !== false || strpos($tmp,'CONTENT-TRANSFER-ENCODING')!==false) {
exit('request_tainting');
}
return true;
}
主要的解决方法还是对用户输入的内容过滤。
可以参考
@如何有效防止XSS攻击/AJAX跨域攻击
@平时PHP开发过程中,安全过滤的方法和需要注意的地方?经常用到的函数?