XSS防范

 

一 简介

   Asp.net 1.1后默认提供了防范 XSS(跨站脚本攻击) 的能力, 如果发现有风险的html标签 系统会抛出一个
HttpRequestValidationExceptioin 异常,

二 使用

   1.可以设置 validateRequest=false 来禁用这个特性,
   2.可用如下方法捕获该错误并对其进行处理: [请切记关闭后需自行编辑代码处理危险字符]

以下是引用片段:
protected void Page_Error(object sender, EventArgs e)
{
Exception ex
= Server.GetLastError();
if (ex is HttpRequestValidationException)
{
Response.Write(
"请您输入合法字符串。");
Server.ClearError();
// 如果不ClearError()这个异常会继续传到Application_Error()。
}
}

 

 

    3.自行编写代码处理危险字符可以采用 "默认禁止,显式允许"的策略。即先将输入用HtmlEncode()来编码,然后再用Replace()替换出安全标签

 4.根据微软提供的建议,我们要慎重允许下列HTML标签,因为这些HTML标签都是有可能导致跨站脚本攻击的。

 

以下是引用片段:
<applet><body><embed><frame><script><frameset><html><iframe><img><style><layer><link><ilayer><meta><object>

  可能这里最让人不能理解的是<img>。但是,看过下列代码后,就应该明白其危险性了。

以下是引用片段:
<img src="javascript:alert(''hello'');">
<img src="java script:alert(''hello'');">
<img src="java script:alert(''hello'');">

  通过<img>标签是有可能导致Javascript执行的,这样攻击者就可以做他想伪装的任何事情。

  关于<style>也是一样:

以下是引用片段:
<style TYPE="text/javascript">...
alert(''hello'');
</style>

转载于:https://www.cnblogs.com/X-Jonney/archive/2009/07/17/1525670.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值