请教关于AntiXSS的问题

test_ufo 2014-11-20 09:04:22
做了个网站,使用百度站长检测时提示存在“Xss漏洞”,漏洞地址如:
http://www.xxx.com/product.aspx?key=

现在想用微软的AntiXSS来防这个,疑问是:
1、使用Sanitizer.GetSafeHtmlFragment后,key参数后面输入<script>alert("script injection/n"+document.cookie);</script><body>之类的内容,程序还是会报错.如果要防的话,是调用这个方法吗?
2、如何测试是否添加的代码已经能正确防xss了
...全文
125 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
test_ufo 2014-11-20
  • 打赏
  • 举报
回复
目前这个地址主要 是用来模糊查询,不想每个查询都用SqlParamenter参数来写,所以就想有没方便点的方法,在获取key参数值时,使用AntiXSS来过滤一些
threenewbee 2014-11-20
  • 打赏
  • 举报
回复
不要通过字符串拼接产生html/js代码,特别是拼接的字符串来自用户输入,或者用户可以修改的变量。 至于检测工具的报告只是一个参考。
跨站脚本攻击(XSS)已经不是什么新鲜的话题了,甚至很多大公司也为此吃尽苦头。最简单直接的防范方法,就是不允许任何html标签输入,对用户输入进行编码(htmlencode)。 但是如果想用户输入支持一些格式,怎么办?一种办法就是很多论坛采用的BB Code的方法。使用特定的标签代替一些格式。比如:[B]表示粗体,等等。但是,BB Code这种形式并不被广泛接受,它的表现力实在太差了,而且并不是标准格式。 为了让用户的输入更具表现力,涌现了大量的Html编辑器控件,著名的有FCKEditor,FreeTextBox,Rich TextBox,Cute Editor,TinyMCE等等。比如,博客园的后台发随笔就支持Cute Editor和TinyMCE,我个人比较喜欢Cute Editor,功能强大,性能不错,而且容易定制。 使用这些Html编辑器控件的潜在危险,是用户可能会输入一些危险字符,注入到网站中,形成XSS攻击。一个最简单的输入就是: alert('xss') 如何防止呢?大致思路有三种: 1. 正则表达式的白名单过滤机制。 2. 正则表达式的黑名单替换机制。 3. 通过DOM对象过滤白名单和黑名单的标签。 其实我用的很简单,就是AntiXss.GetSafeHtmlFragment(html)方法,这个方法会替换掉html里的危险字符。比如: var html = "aaaaaaaaajavascriptalert('a')Test"; string safeHtml = AntiXss.GetSafeHtmlFragment(html); Console.WriteLine(safeHtml); 上面的危险内容被成功替换,返回的内容是: aaaaaaaaajavascript alert('a') Test 嗯,非常安全。然后,又有一个疑问了,是应该将用户的输入过滤之后写入数据库呢?还是在输出界面显示的时候进行过滤?其实,通常来讲,在输出界面显示的时候进行过滤就够了,将用户输入过滤后写入数据库不是很必要,因为即使这样也无法保证数据库中没有危险的数据。当然,上个双保险也没有什么不好的。

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧