1
为了避免通过输入字段进行脚本注入,我在我的控制器操作中将ValidateInputAttribute
设置为false。在我看来,我使用<%:
而不是<%=
。避免在输入字段中注入脚本
我想知道的是,除了上面还有更通用的方法吗?
为了避免通过输入字段进行脚本注入,我在我的控制器操作中将ValidateInputAttribute
设置为false。在我看来,我使用<%:
而不是<%=
。避免在输入字段中注入脚本
我想知道的是,除了上面还有更通用的方法吗?
要通过输入字段避免脚本注入,我设置 ValidateInputAttribute假
这恰好有你正在试图达到什么样的效果相反。它允许脚本注入。当您将其设置为false时,基本上会禁用请求值的验证。
而在我的意见,我使用的<%:而不是<%=
这在视图中显示时是正确的方式HTML编码的所有数据。当然,如果您使用HTML助手(如Html.DisplayFor或Html.EditorFor,您不需要使用<%:
,因为这些助手已经负责正确编码输出)。
但是,如果您将ValidateInputAttribute设置为true,那么您将得到异常:从客户端检测到潜在危险的Request.Form值。那就是,我不想要的。我只是想阻止执行潜在的脚本 – Djave 2013-04-05 13:51:07
是的,这很正常。 ASP.NET显式不允许发布这些字符,因为它们可用于XSS注入。当然,如果你正确地对输出进行HTML编码,你可以安全地禁用这个验证。 – 2013-04-05 13:54:02
谢谢,但这是正确的方式,我在做什么?现在我有数百个视图,我必须用<%:替换<%=。有没有另一种方式来做到这一点更通用? – Djave 2013-04-05 14:06:28