因为我刚刚开始学习网络相关的编程,所以请暂时忘掉我的无知。所以,我有一个用MVC编写的web项目,它有一个登录窗口,其中Username文本框绑定到一个属性:
@Html.TextBoxFor(model => model.UserName, new {@placeholder = "Username"})
据我了解,Razor会自动对html进行编码,以帮助防止跨脚本攻击。但是,当我使用javascript测试用户名时,我从MVC获得了一个例外:
从中检测到一个潜在危险的Request.Form值 客户端(UserName =“... hp?name_1 =代码
这让我觉得输入不是html编码的。我的想法是用html编码/解码解决这个问题,但看起来我没有把这个想法弄好。有人可以解释一下吗?
注意: SO related posts中的一个提供了一个不安全的解决方案,但我不能选择简单地允许html。
答案 0 :(得分:0)
它不是HTML编码,这是正确的。您将不得不在回复表单的操作中执行HTML编码。
此外,您还需要添加[ValidateInput(false)]属性,而不仅仅是您的操作。