有人可以正确解释
的需要 validateRequest="false"
enableEventValidation="false"
页面标记中的
答案 0 :(得分:2)
编辑:出于安全原因,最好尽可能将其设置为true。
因此,我建议您仅在导致问题的各个AJAX页面上将其设置为false,而在web.config中保留为true。
“好处”是您可以更好地控制输入验证。如果ValidateRequest = true
且输入的字符无效,则会向用户显示一个丑陋的错误页面。
虽然有点旧,here你有关于“防止ASP.NET中跨站点脚本”的MSDN帖子
答案 1 :(得分:0)
我假设您要求我设置validateRequest="false"
和/或enableEventValidation="false"
的有效方案。
enableEventValidation="false"
。例如,如果服务器端下拉控件必须有三个值“A”,“B”,“C”,那么这些只是回发后预期的值。但是如果你正在进行客户端操作并因此引入额外的值“D”并选择它,那么ASp.NET将引发事件验证错误。所以我们必须压制它。特别是,更改下拉值(没有回发)可能非常普遍 - 根据州选择等填充城市
validateRequest="false"
- 例如<script>bla bla...</script>
会引发请求验证错误,但如果您正在开发允许发布代码的开发人员论坛/ QA站点(例如SO),则必须禁用请求验证。
答案 2 :(得分:0)
ValidateRequest
设置会检查用户输入的潜在有害信息。例如,如果ValidateRequest
设置为true并且您在TextBox中输入了一些标记,则请求验证将失败并且页面将出错。
EnableEventValidation
设置确定回发和回调事件是否应验证控件事件源自控件呈现的用户界面。当用户通过JavaScript触发服务器端事件时,通常会遇到这种情况,例如调用__doPostBack
函数。