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

发布于 2024-10-10 22:45:35 字数 452 浏览 7 评论 0原文

我在我的 MVC.NET 网站上使用 CKEditor/CKFinder 作为所见即所得编辑器。

我已经设置了 [ValidateInput(false)] 并且在本地调试时它可以工作,但是当我发布站点时收到以下错误:

A potentially dangerous Request.Form value was detected from the client (message="<p>
<em>Testing</e...").

任何人都可以解释为什么发布的站点与本地站点不同,特别是当我设置了 [ValidateInput(false)] 时?

*更新:*我使用的是 .Net 3.5,所以 [ValidateInput(false)] 不应该正常工作吗?

I am using CKEditor/CKFinder as wysiwyg editor on my MVC.NET site.

I have set [ValidateInput(false)] and it works when debugging it locally, but I receive the following error when I have published the site:

A potentially dangerous Request.Form value was detected from the client (message="<p>
<em>Testing</e...").

can anyone explain why the published site is different from the locally site, especially when I have set [ValidateInput(false)]?

*Update:*I am using .Net 3.5 so shouldn't [ValidateInput(false)] work out the box?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

猥︴琐丶欲为 2024-10-17 22:45:35

您是否尝试过设置 htmlEncodeOutput 属性?

CKEDITOR.replace('editor1', {
    htmlEncodeOutput: true });

这应该对输出进行编码,并且您应该能够避免设置 requestValidationMode。

它的文档位于:ckEditor 文档

Have you tried setting the htmlEncodeOutput property?

CKEDITOR.replace('editor1', {
    htmlEncodeOutput: true });

This should encode the output and you should be able to avoid setting the requestValidationMode.

Documentation for it is here: ckEditor documentation

溇涏 2024-10-17 22:45:35

将其添加到您的 web.config 中:

<httpRuntime requestValidationMode="2.0" />

Add this to your web.config:

<httpRuntime requestValidationMode="2.0" />
就是爱搞怪 2024-10-17 22:45:35

只需在 Post 方法 Action 中添加一个 Annotation 作为 [ValidateInput(false)]

[HttpPost]
    [ValidateAntiForgeryToken]
    [ValidateInput(false)]
    public ActionResult Detail(ModelClass m)
    { return View(); }

Just add an Annotation to the Post method Action as [ValidateInput(false)]

[HttpPost]
    [ValidateAntiForgeryToken]
    [ValidateInput(false)]
    public ActionResult Detail(ModelClass m)
    { return View(); }
極樂鬼 2024-10-17 22:45:35

验证请求=“假”
将其添加到特定页面中。

例子:

ValidateRequest="false"
Add this in the particular Page.

Example:

伪装你 2024-10-17 22:45:35

ValidateRequest="false" 添加到您的页面:

<%@ Page Language="C#" AutoEventWireup="false" Codebehind="MyForm.aspx.cs" Inherits="Proj.MyForm" ValidateRequest="false"%>

或者如果使用 .NET Framework 4.0 (Visual Studio 2010),则添加到 web.config

<httpRuntime requestValidationMode="2.0" />

Add ValidateRequest="false" to your Page:

<%@ Page Language="C#" AutoEventWireup="false" Codebehind="MyForm.aspx.cs" Inherits="Proj.MyForm" ValidateRequest="false"%>

Or add to web.config if using .NET Framework 4.0 (Visual Studio 2010)

<httpRuntime requestValidationMode="2.0" />
梦萦几度 2024-10-17 22:45:35

使用 Request.Unvalidated["myTextBox"]

例如,

var text = Request.Unvalidated["myTextBox"];

,其中“myTextBox”是您希望允许发布 HTML 的表单字段。

Use Request.Unvalidated["myTextBox"]

for example,

var text = Request.Unvalidated["myTextBox"];

where "myTextBox" is the form field you want to allow HTML to be posted from.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文