本文目录一览:
ASP、PHP网站如何根治XSS跨站?
避免XSS的主要方法是将用户所提供的内容输入输出进行过滤,许多语言都有提供对HTML的过滤:可以利用下面这些函数对出现xss漏洞的参数进行过滤
PHP的htmlentities()或是htmlspecialchars(),Python的cgi.escape(),ASP的Server.HTMLEncode(),ASP.NET的Server.HtmlEncode()或功能更强的Microsoft Anti-Cross Site Scripting Library,Java的xssprotect(Open Source Library),Node.js的node-validator。
ASP网站的XSS跨站漏洞出现原因及解决办法?
Xss漏洞主要利用的是把输出的内容信息转化成脚本信息,这就需要把输出信息做过滤,这方面的过滤API可以考虑OWASP的ESAPI。这个API有面向ASP的版本,去OWASP官网去找吧。
恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。
ASP
漏洞代码示例:
%
Dim param
Set param=Request.QueryString(“dd”)
response.write param
%
修复范例:
%
Dim param
Set param=Request.QueryString(“dd”)
response.write Server.HTMLEnCode(param)
%
PHP
漏洞代码示例:
?php
$aa=$_GET['dd'];
echo $aa.”123″;
?
修复范例:
?php
$aa=$_GET['dd'];
echo htmlspecialchars($aa).”123″;
?
asp 求修复方法 XSS跨站脚本漏洞
UName=Replace(trim(Request.Form("UserName")),"'","")
PW=Replace(trim(Request.Form("Password")),"'","")
Sex=Replace(trim(Request.Form("Sex")),"'","")
QQ=Replace(trim(Request.Form("QQ")),"'","")
Age=Replace(trim(Request.Form("Age")),"'","")
AH=Replace(trim(Request.Form("AH")),"'","")
SF=Replace(trim(Request.Form("SF")),"'","")
这里
我只举一个例子,以下全部效仿
UName=Replace(trim(Request.Form("UserName")),"'","")
改为
UName=Replace(Replace(Replace(Replace(trim(Request.Form("UserName")),"'",""),Chr(34),""),":",""),"%","")
把' " %等危险字符过滤掉就行了
求助:ASP跨站攻击漏洞(XSS)修复方法。
字段值=server.HTMLEncode(rs("字段"))
或
字段值=安全检测模块("字段")
另外,用SESSION代替COOKIE会更好
SQL语中不要直接代入COOKIE,应该先处理
如: "select * from 表 where 字段 = '"request.Cookies(名1)(名2)"'"
这是不安全的,应该改为:
"select * from 表 where 字段='" 安全检测模块(request.Cookies(名1)(名2)) "'"