问题标签 [request-validation]

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 投票
4 回答
13971 浏览

c# - 我无法关闭 ASP.NET MVC 控制器的请求验证

我正在尝试通过执行以下操作关闭控制器中所有操作方法的请求验证:

我正在使用的参考资料说这是可能的,并告诉我这样做,但由于某种原因它不起作用。

如果我通过文本框提交任何 html(甚至是简单的 <b> 标签),我会收到错误消息:

从客户端检测到具有潜在危险的 Request.Form 值 (text=<b>")。

通过将属性附加到单个方法也不起作用。

如何禁用控制器的请求验证?

编辑

我在内置测试服务器的 VS2008 中工作。

0 投票
2 回答
12321 浏览

asp.net-mvc - 请求验证 - ASP.NET MVC 2

ASP.NET MVC 2 的请求验证是否已更改,更准确地说,不是验证?

我做了以下事情:

Web.configs(在 App 目录和 Views 目录中)

控制器/动作属性

在@Page 视图指令中

该页面仍然得到验证,当发布 HTML 内容时会引发异常。

更新

创建了一个新的 ASP.NET MVC 2 应用程序,我将 Home Controller 的索引修改为此

和我的查看页面

仍然是同样的问题,抛出异常。

0 投票
1 回答
1043 浏览

asp.net-mvc - 如何在 ASP.NET MVC 中向 ModelStateDictionary 添加请求验证错误?

调查我正在使用 ASP.NET MVC 2 构建的系统的安全性使我发现了 ASP.NET 的请求验证功能 - 确实是一个非常简洁的功能。但很明显,当用户输入带有 HTML 的数据时,我不只是想向用户呈现黄屏死机,所以我要寻找更好的解决方案。

我的想法是找到所有具有无效数据的字段并将它们添加到ModelStateDictionary调用操作之前,以便它们自动显示在 UI 中作为错误消息。在谷歌上搜索了一下之后,似乎没有人实现过这个,在这之前我觉得很困惑,因为它看起来很明显。这里有没有人有关于如何做到这一点的建议?我自己的想法是为ControllerActionInvoker控制器提供一个自定义,如此处所述以某种方式检查并修改它,ModelStateDictionary但我坚持最后一点。

仅仅捕获HttpRequestValidationException异常似乎不是一种有用的方法,因为它实际上并不包含我需要的所有信息。

我自己已经回答了这个问题,但我仍然很想听到任何更优雅/更强大的解决方案。

0 投票
1 回答
6415 浏览

.net-4.0 - 从 .Net 4 中的客户端检测到潜在危险的 Request.Form 值

因此,白皮书将 .Net 4 中的一项重大更改描述为错误消息“从客户端中检测到潜在危险的 Request.Form 值”,以及进入 Web.config 文件的修复程序

我有两个问题。这是否意味着任何我想要像 tinymce 或 ckeditor 这样的 wysiswyg 编辑器的网站,requestValidationMode 都必须是 2.0?在这种情况下,您会失去什么好处?(如果我将 requestValidationMode 设置为 2.0 没有任何好处,为什么不默认设置它,这样它就不会破坏任何东西?)

在 2.0/3.5 中,我能够逐页设置 ValidateRequest - 这当然在 .Net 4.0 中仍然可行,但是为了在页面级别进行设置,我必须在站点范围内进行更改?这看起来不完全落后吗?

我做对了吗/这听起来像垃圾,还是我错过了什么?

0 投票
2 回答
1396 浏览

asp.net - 仅来自 IE8 的潜在危险 Request.Form 值

我有一个 Facebook 风格的现代按钮控件,其客户端标记如下所示:

此按钮适用于使用 Visual Studio 2010 Web 服务器的 IE 和 FF,但是当我将应用程序部署到服务器(Windows Server 2008/IIS 7.0)时,我收到“检测到潜在危险的 Request.Form 值”错误,但是仅与 IE。看来 IE 正在传递 Request.Form 集合中的 ctl00_uxBtn="<div style="background-image:..." 标记,IIS 正确地将其解释为潜在的脚本注入漏洞。据我所知,FF 通过ctl00_uxBtn="ctl00$uxBtn" 这是完全可以接受的。有没有办法强制 IE 进入更多类似 FF 的行为?我不想禁用请求验证。

0 投票
1 回答
372 浏览

asp.net - 如何修改请求验证?

我需要将请求作为 URL 的一部分提交给我的应用程序,其中包含带引号的字符串,例如

如以下问题所述,这会引发错误:

如何包含引号字符作为路由参数?收到“路径中的非法字符”消息

我想实施 Scott Hanselman 的建议来改变

<httpRuntime requestPathInvalidCharacters="&lt;,&gt;,*,%,:,&amp;,\" />

值不包括引号字符。但这在 .net 3.5 中似乎不可用。

有人能指出如何让它工作吗?

0 投票
1 回答
461 浏览

asp.net - 允许引号字符作为 URL 参数的一部分有什么风险?

我需要允许用户提交如下查询;

但由于请求验证而失败,如以下 2 个问题所述:

如何包含引号字符作为路由参数?收到“路径中的非法字符”消息

如何修改请求验证?

我目前正在尝试弄清楚如何禁用引号字符的请求验证,但我想知道在我实际启用该禁用的站点之前的风险?我不会禁用请求验证,除非我只能对引号字符禁用它,所以我打算禁止当前不允许的所有其他字符。

0 投票
1 回答
224 浏览

asp.net - How to unit test for turning off request validation?

I'm new at this TDD thing but making a serious effort, so I'm hoping to get some feedback here.

I created a little web service to minify JavaScript, and everything was nice, with all my tests passing. Then I noticed a bug: if I tried to minify alert('<script>');, it would throw a HttpRequestValidationException.

So that's easy enough to fix. I'll just add [AllowHtml] to my controller. But what would be a good way to unit test that this doesn't happen in the future?

The following was my first thought:

#xA;

However, this doesn't work since I am just getting a controller instance and running methods on it, instead of firing up the whole ASP.NET pipeline.

What would be a good unit test for this? Maybe reflector on the controller method to see if the [AllowHtml] attribute is present? That seems very structural, and unlikely to survive a refactoring; something functional might make more sense. Any ideas?

0 投票
1 回答
775 浏览

asp.net - .NET 4.0 上的 ASP.NET MVC2:[ValidateInput(false)] 是否足够?

再会!

我计划将我的 ASP.NET MVC 2 应用程序升级到 .NET 4.0,并且有几个问题:

  1. [ValidateInput(false)]足够的行动来接受 HTML,或者我需要<httpRuntime requestValidationMode="2.0"/>按照此处所述进行设置:ASP.NET 4 Breaking Changes

  2. 如果我将 ASP.NET MVC 升级到版本 3(除了升级到 .NET 4.0),它将如何工作?

提前致谢!

0 投票
2 回答
8482 浏览

asp.net - 在仅安装了 .NET 4.0 的 IIS 7.5 上托管的 .NET 3.5 项目中禁用 ASP.NET 请求验证(仅用于一页)

我在 ASP.NET 网络表单中的请求验证存在问题,我很确定这是因为我在 IIS 7.5(Windows 7 - 本地开发机器)上托管了一个 .NET 3.5 项目。

本质上,我收到了来自外部站点的回发(这完全不在我的控制范围内)并收到以下异常:

A potentially dangerous Request.QueryString value was detected from the client (DATA="<IDP MSGTYPE="Authen...").

我在页面声明中设置了这个:

(此外,我也尝试在 web.config/page 中将其关闭 - 无济于事。

我认为这可能与(MS 所说的)ASP.NET 4.0 中所做的重大更改有关,如下所述: http ://www.asp.net/learn/whitepapers/aspnet4/break-changes#0.1__Toc256770147

但是,如果我将该配置添加到我的 web.config 中,则会出现配置错误(因为它在 .NET 2.0 应用程序池中运行)。

无论我看起来如何,我现在都被困住了,所以我会很感激人们的任何指示/建议。无论如何我可以通过其他方式解决这个问题吗?)。我可以尝试安装 .NET 2.0,但我不确定它是否会起作用(而且似乎是一种非常脆弱的尝试方法)。

谢谢。