如何通过ASP.Net中的代理工具中的拦截器阻止跨站点脚本(XSS)

时间:2015-03-22 14:58:23

标签: xss

我的页面上有文本框的名字和姓氏。 当我测试页面并使用像BURP套件这样的代理工具中的拦截器使用Doe%uff1cscript%uff1ealert%uff0812345%uff09%uff1c / script%uff1更新姓氏时,姓氏被存储为< script> alert(12345)< /脚本>在数据库中。

我曾尝试使用microsoft antixss库,但这不起作用。以下是我使用的代码: Dim Lname As String = Microsoft.Security.Application.Encoder.HtmlEncode(txtLName.Text)

有没有人建议如何防止这种情况?

1 个答案:

答案 0 :(得分:0)

只需在输出上进行HTML编码,而不是在存储时进行HTML编码。

e.g。 <变为&lt;&变为&amp;

有关详细信息,请参阅OWASP XSS (Cross Site Scripting) Prevention Cheat Sheet

在.NET中,您可以在视图中使用Server.HTMLEncode<%:myVar %>来执行此操作。