我什么时候使用HttpServer Utility.HtmlEncode MVC?

时间:2015-04-23 17:43:04

标签: asp.net-mvc asp.net-mvc-5

我最近一直在阅读有关使用ASP.NET MVC5的很多内容。我不确定的一件事是我读过的书之一,你应该使用HttpServerUtility。你的视图中的HtmlEncode是为了防止XSS攻击,但是我读了一些说视图项自动使用它的东西,除非你使用http raw方法。什么时候在你的视图中使用HttpServerUtility.HtmlEncode是明智的,你怎么知道它何时需要以及何时不必测试XSS注入的每一个输入?

1 个答案:

答案 0 :(得分:2)

你有些准确。模型中实现IHtmlString的属性将默认编码(因此可防止大多数XSS攻击)。如果它们确实实现了该接口,它们将按原样输出(因为接口假定您正在生成某种形式的标记)。

回答主要问题,“何时谨慎”:当您向页面输出用户输入时。如果您编写了一个自定义帮助程序来传递IHtmlString,那么在该方法中建议对其进行编码(作为最终输出的一部分)。这适用于可以输出到页面并且最初由用户生成(或之后修改)的任何类型的数据。