Skip to main content
 首页 » 编程开发

XSS跨站脚本攻击漏洞修复方法

5年前 (2013-08-22)56780百度已收录

漏洞类型:跨站脚本攻击(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″;
?>

 

评论列表暂无评论
发表评论
新浪微博
微信