我即将推出我的第一个Umbraco网站,但我正在进行最后一分钟的测试。
我试图成为一名'黑客',并在我的搜索表单和联系表单中输入危险内容,.NET阻止了一个大的黄色错误页面,并出现以下错误:
A potentially dangerous Request.Form value was detected from the client (Subject="test <b> 'haha").
我已经研究过这个错误并找到了很多解决方案,其中人们发布 禁用 这个错误的方法,但我担心如果我这样做,它将允许恶意数据发布,因为我没有(明知)有任何适当的地方来安全地处理它。
我使用uContactor作为联系表单,搜索工具基于教程here。
在前几天开发的经典ASP中,只是一个HTML-Encoding请求的情况(并替换了一些顽皮的字符,如&lt;和&gt;等),但我会感谢一些关于最佳方法的建议在ASP.NET MVC / Umbraco网站上处理这些事情,因为它对我来说还是一个新手。
(我不想阻止人们输入这些东西,只是为了网站安全和优雅地处理它)。谢谢。
答案 0 :(得分:0)
此错误检查实际上发生在Umbraco之上。在Umbraco运行之前,ASP.Net会把它拿起来。
您可以在发现时将其关闭,但无论网站是否正确处理潜在危险的输入,都将取决于网页对数据的处理方式以及存储/呈现数据的方式。
您可以在每页的基础上将其关闭,这样您就可以在需要提交无效字符的网页上允许它(例如,如果您有一个接受HTML的字段)。我会说毯子禁用它可能会更好。这确实意味着你可以减轻任何危险的输入。
此处的问题向您展示了如何在MVC中禁用特定控制器方法的请求验证:
I can't turn off Request Validation for an ASP.NET MVC Controller