问题标签 [validate-request]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3196 浏览

asp.net - 将 ValidateRequest="true" 与 HttpHandlers 一起使用

我在 web.config 的 HttpHandlers 部分设置了一个 HTTP 处理程序,如下所示:

PCI 扫描突出显示了此处理程序中的一个漏洞,这使其容易受到 XSS 攻击。基本上,您可以通过查询字符串传递一个标签,然后 httphandler 将标签直接转储到原始格式的响应中 - 哎呀!

我无权访问此处理程序的源代码,因此我一直在尝试使用带有以下标记的 asp.net 关闭此漏洞:

然而,这不起作用。查询字符串未被验证,标签仍在通过。

我正在使用 asp.net 3.5 运行 IIS7。

任何人都可以帮忙吗?

干杯,帕特

0 投票
2 回答
641 浏览

c# - 如果我选择设置 ValidateRequest=false,我需要做些什么来保护我的网站?

我刚刚发现,因为默认情况下 ValidateRequest = true,所以默认情况下,您不能在任何输入字段中输入“<”或“>”。

对我来说,对 XSS 攻击不太了解,这似乎很受限制。

为了解决这个问题,我意识到我可以使用 validateRequest = false,并对用户数据进行编码。显然,微软有充分的理由设置 validateRequest = true,所以现在的问题是我有一个包含很多页面的整个站点,所有这些都是“无法放置 < 或 > 问题”。

我的问题是我只有两个选择吗?

1) 保留 validateRequest = true 并且根本不允许用户输入 < 或 > 2) 切换 validateRequest = false 并采取预防措施。

如果为 2,我是否打算对所有数据输入进行编码?就像从登录名和密码到用户文本到搜索条件的文本字段一样?还是我只需要对某些输入进行操作?如果是这样,我应该定位哪些领域?

0 投票
2 回答
1390 浏览

asp.net - 验证异常,即使 ValidateRequest="false"

我在 Web 表单中有一个文本框,管理员用户可以在其中添加要提交的 HTML 以进入数据库。

过去,我总是在提交 HTML 数据时添加ValidateRequest="false"Page避免验证错误。但是,使用此网站,即使ValidateRequest设置为false,我也会收到以下错误:

从客户端检测到潜在危险的 Request.Form 值

我听说这与 .NET 4 安全性有关,但这是一个 ASP.NET 3.5 应用程序。

为什么我仍然收到此错误?

0 投票
2 回答
200 浏览

c# - 文本框验证强制错误

Vista,视觉网络开发人员快递 2010,c#,asp.net,webforms。使用 ctrl-F5 运行程序。我是唯一一个会运行这个程序的人......而且它只会在我的笔记本电脑上使用本地数据库运行。

编写应用程序来下载网页,查看它们,(做一些分析),记录一些结果。我找到了下载页面的代码 - 效果很好。然后我将文本框的文本属性设置为页面的字符串内容。那部分也有效。然后我再次运行代码,但文本框的内容得到验证并导致错误消息。

我可以一遍又一遍地运行代码而不会出现问题——只要我不在文本框中显示结果。我尝试了几种不同的解决方案:

  1. 我在文本框中尝试了 enabled="false" 属性...这使我可以查看代码的第一部分,但是由于未启用文本框,因此我无法上下滚动并查看文件。所以这并不能真正解决问题。

  2. 我尝试在页面指令和 system.web 中设置 validateRequest="false" (根据http://www.asp.net/learn/whitepapers/request-validation),但据我所知它没有效果. 也就是说,我仍然得到错误。

  3. 在将字符串内容放入文本框之前,我尝试使用 html 编码字符串内容。这适用于显示器......但它不能解决它在问题的下一次迭代中失败的问题。

  4. 我想过捕获错误并忽略它,但验证似乎发生在它执行我的代码隐藏之前。

我实际上不必将页面打印到窗口来进行分析,但如果我可以一次查看这些内容或以片段的形式查看这些内容,那将非常有帮助。我可以从浏览器做一个页面源。我不确定......也许这是首选的解决方案。

我真的很惊讶选项 #2 不起作用,因为这似乎是推荐的解决方案。

这是我使用的页面指令:

是否需要做其他事情来停止 validateRequest?

0 投票
1 回答
658 浏览

asp.net - ValidateRequest - 获取错误并显示在当前页面上

我有一个 asp.net 应用程序,并且我意识到,如果我设置ValidateRequestfalse,总是会显示一个标准错误页面。

我听说您可以显示自定义错误页面。

但我需要知道我是否可以捕获错误并将其显示在当前页面上(回发后),即正在显示的页面上。

有没有办法做到这一点?

0 投票
3 回答
7711 浏览

c# - 禁用特定页面的 ValidateRequest

朋友们,我有麻烦了,需要你的帮助。

对于我网站管理部分的数据库管理,我想在其中输入数据和 HTML 标记的文本字段很少。只要我添加任何 HTML 标记(例如 <BR />),SQLDATASOURCE 更新就会给出错误“从客户端检测到潜在危险的 Request.Form 值”

已经尝试了ValidateRequest="false"但它没有工作 由于空间问题无法使用 AJAX 编辑器。

如果我使用httpRuntime requestValidationMode那么它会禁用整个网站的验证,使其对黑客开放。

朋友,我如何才能仅在管理部分中仅针对特定页面禁用ValidateRequest

0 投票
2 回答
43276 浏览

web-config - validateRequest 和 requestValidationMode 不适用于 .net 2.0

我在 IIS 7 中托管 WCF 服务。它们在 .net 2.0 版下运行。一切正常。但最近,我收到错误列表“潜在危险请求......”。我在互联网上搜索,发现我必须像这样设置我的 web.config。

我更新了我的 web.config,但后来我无法浏览到服务。它给了我这个错误。

解析器错误消息:无法识别的属性“requestValidationMode”。请注意,属性名称区分大小写。

请帮我解决这个错误。谢谢,维维克

0 投票
1 回答
114 浏览

asp.net-mvc-3 - 模型级别的 ValidateRequest

我需要找到一种在模型上设置 ValidateRequest 的方法...我知道我可以在 Web 配置级别将 ValidateRequest 设置为 false ...但我不想在应用程序级别这样做,我更喜欢这样做它在模型级别,在 WebForms 中,我们曾经有 ValidateRequest 页面指令属性,您可以将其设置为 false,但在 MVC 中,我们可以使用“ValidateRequest = false”在控制器级别执行它......但我想要做的是看到如果有办法在模型级别应用此属性......因为我想在我的应用程序的不同位置使用模型......我不想每次在视图中使用它时都设置“ValidateRequest” ...

任何帮助将不胜感激......

0 投票
1 回答
656 浏览

c# - 将 .net 更改为 4.0 后,ValidateRequest 停止工作

从 .Net 4.5 更改为 4 后出现此错误

错误说:“从客户端检测到潜在危险的 Request.Form 值”

在我的 4.5 解决方案中,我的 aspx 页面顶部有“ValidateRequest="false"”。但这似乎不再起作用了。

我知道为什么会出现错误,但不知道如何使它消失。

0 投票
4 回答
14661 浏览

asp.net - Alternative to ValidateRequest="false"

Is there a way to prevent the error "A potentially dangerous Request.Form value was detected from the client" other than setting ValidateRequest="false"?

Update: I removed the "on the page" part. I'd like to not use ValidateRequest="false" at all, on the page or in web.config.