2017-05-04 49 views
0

特别是,当用户在小于符号“<”后面输入一个字母时,客户端重定向到通用错误页面,而没有请求到达相应的行动。当符号<输入时产生错误C#mvc razor textboxfor和passwordfor产生错误

解决此问题的最佳方法是什么?

更新 有了一些答案和注释的帮助下,我意识到,真正的错误我在客户端上是

但是,使用“从客户端检测到有潜在危险的Request.Form值”所有相关领域的[AllowHtml]对我来说都不是最佳做法。有没有其他方法呢? (如果没有,我会接受现有的答案为最佳)

+1

其正确试图保护你免受XSS。你能分享一些代码吗? https://www.codeproject.com/Articles/995931/Preventing-XSS-Attacks-in-ASP-NET-MVC-using-Valida – Webbanditten

+0

@Webbanditten,在vs2013的默认mvc web应用程序模板上,登录屏幕会重现此问题用这个符号输入用户名 – cnom

+0

如下所述,查看你的属性[AllowHtml]可能是解决方案。此外,你永远不会显示在原始HTML密码 - 再加上密码希望散列所以... – Webbanditten

回答

1

您可以使用[AllowHtml]属性对模型的属性

+0

这可能是一个解决方案,但会引发一些安全问题。例如,当特定输入要在某个页面中呈现时,客户端可能会渲染一些不安全的内容...... – cnom

+0

呈现时,应在内容上使用Html.Encode助手。这样,作者可以在没有错误的情况下在表单中启用html,但在显示内容时也必须对其进行编码。 –

+0

Html.Encode已被使用,因为所有字段都使用@ razor帮助程序显示。但是你所建议的是,我在所有字段中使用AllowHtml属性(因为在用户可能想要使用<符号之前,我现在不用)?这对我来说似乎并不是最佳实践,因为我实际上并不想让Html(该属性表示) – cnom