在asp.net中转义/改造html的安全隐患(解决validateRequest)

时间:2009-10-28 14:27:22

标签: asp.net security

当我提交一个像<a_(下划线是一个空格)的表格时,我正在向我提供asp.Net barf。这很糟糕 - 至少我希望能够优雅地处理错误,理想情况下我希望用户能够提交他们喜欢的任何内容并让它按照用户的期望工作。

  • 我可以在web.config中设置validateRequest="false",但我不想这样做,因为我不了解安全隐患。
  • This article建议使用JavaScript来转义html,然后重新构建html服务器端,但是我也不确定它的安全含义是什么 - 这不仅仅是设置{{ 1}}对于那个控件?

2 个答案:

答案 0 :(得分:2)

绕过去。 ValidateRequest只是阻止XSS攻击的弱尝试。虽然这是一次有效的尝试,但它会导致安全性降低,并使开发人员感到困惑。

问题的关键是帮助防止javascript被发送到主机,只是盲目地回馈给一个或多个客户端。你可以通过HtmlEncoding来阻止你在网页上显示的任何内容,这是你应该首先做的,而不是依赖于ValidateRequest。

我的建议:

  1. 了解XSS攻击
  2. 摆脱ValidateRequest
  3. 在其位置使用Anti-XSS

答案 1 :(得分:0)

最好做javascript的事情。

您如何处理提交的信息?

如果您打算在屏幕上为其他用户显示它,那么XSRF就会非常糟糕。

这可能会导致各种各样的事情,从错误的页面内容(有点像商店橱窗上的涂鸦)到会话劫持等等。

有关XSRF攻击的一些信息:

http://webpangea.blogspot.com/2009/05/xsrf-attacks-far-too-easy.html