演示XSS漏洞攻击 | 发帖如何提交javascript代码

首先创建一个项目(在.netFramework 2.0下面创建)

然后打开项目目录下的Default.aspx(默认名字,我自己没改名字了。为了演示而已)选择源代码

在源代码最上方的<%@ Page 中添加 ValidateRequest="false"

再拖一个Button按钮,一个Label按钮,一个TextBox控件到Default.aspx页面  (Label用来显示TextBox文本框的内容)


双击Button按钮,



        protectedvoid Button1_Click(objectsender, EventArgs e)


        {


            //File.AppendAllText的意思就是将指定的字符串追加到文件中,如果文件还不存在则创建该文件。


            //System.IO.File.AppendAllText("e:/1.txt",TextBox1.Text+"<br>");


            //stringstr = File.ReadAllText("e:/1.txt");


 

            //第一种方法


            stringstr = TextBox1.Text;


            str= str.Replace("<", "&lt");


            str= str.Replace(">", "&gt");


            Label1.Text = str;


 


            //第二种方法:


            Label1.Text = HttpUtility.HtmlEncode(TextBox1.Text);


            //Label1.Text=HttpUtility.HtmlEncode( File.ReadAllText("e:/1.txt")          


        }


    }


注解:



假如用户在TextBox1文本框中输入一段javascript代码然后递交的时候,(例如在中输入<script>alert("你好工商银行提示您中了一辆小轿车,请联系123456领取")</script>)这段代码在你单间Button表单提交的时候就会弹出相应的一段对话框出来。而不是实实在在的纯文本的这段<script>alert("你好工商银行提示您中了一辆小轿车,请联系123456领取")</script>内容。


 


要想规避这个漏洞攻击


 


第一种方法.过滤”<”和”>”标记


XSS跨站攻击的最终目标是引入script代码在用户的浏览器中执行,所以最基本最简单的过滤方法,就是转换”<”和’>”标记。


string str=TextBox1.Text;


str=Replace(str,"<", "&lt");


str=Replace(str,">", "&gt");


Label1.Text=str;


第二种方法:


HttpUtility.HtmlEncode(TextBox1.Text);


就可以将 字符串中的<> /等特殊字符转换为HTML显示的字符了。也就是不把<script>当成脚本的标签,而是当成&lt,&gt;等这样的可以在页面直接显示出来的内容。         




 




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值