我的页面上有文本框的名字和姓氏。 当我测试页面并使用像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)
有没有人建议如何防止这种情况?
答案 0 :(得分:0)
只需在输出上进行HTML编码,而不是在存储时进行HTML编码。
e.g。 <
变为<
,&
变为&
。
有关详细信息,请参阅OWASP XSS (Cross Site Scripting) Prevention Cheat Sheet。
在.NET中,您可以在视图中使用Server.HTMLEncode
或<%:myVar %>
来执行此操作。