漏洞类型:跨站脚本攻击(XSS)
1.跨站脚本攻击就是指恶意攻击者向网页中插入一段恶意代码,当用户浏览该网页时,嵌入到网页中的恶意代码就会被执行,从而达到恶意用户的特殊目的(一般用来盗取浏览器cookie)。
2.跨站脚本攻击漏洞,英文名称Cross Site Scripting,简称CSS又叫XSS。它指的是恶意攻击者向Web页面中插入一段恶意代码,当用户浏览该页面时,嵌入到Web页面中的恶意代码就会被执行,从而达到恶意攻击者的特殊目的。
危害:
1.恶意用户可以使用该漏洞来盗取用户账户信息、模拟其他用户身份登录,更甚至可以修改网页呈现给其他用户的内容。
2.比如有一天你打开一个网站,突然弹出一个窗口 提示叫你登陆 你以为是这个网站让你登陆 当你输入账户密码以后你的所有操作都被黑客记录了,还有小白问“盗取浏览器cookie有什么用” 黑客盗取你的浏览器cookies以后 可以利用你的cookie登陆你在特定网站或者论坛的账户。
3.网站常见的存在跨站的地方多半都在留言本,搜索,评论。这些地方, 特别是有留言和评论的地方要注意,你网站这两个地方存在跨站,黑客可以直接在这两个地方提交跨站攻击脚本,你登陆后台查看留言和评论以后就被攻击了。
解决方案:
避免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漏洞代码示例:
<% 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″; ?>