到HTMLENCODE或不在Web窗体上的HTMLENCODE用户输入(asp.net vb)

Phi*_*hil 0 asp.net security xss parameters html-encode

我有许多参数构成插入表单,例如:

x.Parameters.AddWithValue("@city", City.Text)
Run Code Online (Sandbox Code Playgroud)

我今天早上在网站上发生了一次失败的xss攻击,所以无论如何我都试图加强安全措施....

我应该像这样添加我的输入参数吗?

x.Parameters.AddWithValue("@city", HttpUtility.HtmlEncode(City.Text))
Run Code Online (Sandbox Code Playgroud)

还有什么我应该考虑避免攻击吗?

Que*_*tin 5

不要编码输入.编码输出.在将来的某个时候,您可能决定要使用相同的数据来生成PDF或Word文档(或其他内容),此时您不希望它是HTML.

当您接受数据时,它只是数据.

将数据插入数据库时​​,需要将其转换为对数据库有意义.

将数据插入HTML文档时,需要将其转换为对HTML有意义.

… 等等.