近期XSS(跨站脚本攻击)极其频繁,中招者甚众,本文介绍如何从原理上根治XSS跨站脚本攻击。
XSS,即跨站脚本攻击,主要的攻击原理是在网站输入的地方提交HTML格式的脚本代码,如果网站对提交的信息不做变换处理而直接输出,则会导致恶意脚本代码在客户端浏览器上被执行。从而导致用户信息被窃取、Cookie被盗用等危险。Cookie被盗用很有可能进一步导致当前的登录状态被人冒充。
参考了一下360提供的解决方案,其中的方案一是这样写:
方案一:避免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。
如在获取一个参数时,可以使用 p1=Server.HTMLEncode(Trim(Request.Form("p1")))的形式,来将HTML格式的所有内容(包括脚本)进行转换,这样就不存在隐患了。但如果要对所有的输入都做这样的处理,可以写一个安全获取变量值的函数,便于统一调用。
360的方案二很狗屎,可以不予理睬。
关于ASP、PHP网站如何根治XSS跨站脚本攻击,本文就介绍这么多,希望对大家有所帮助,谢谢!