При проверке обнаружен опасный ввод клиента - запись из TinyMCE в ASP.NET - PullRequest
6 голосов
/ 04 августа 2009

Я получаю эту ошибку, когда отправляю сообщение с TinyMCE в представлении ASP.NET MVC.

Ошибка:

Проверка запроса обнаружила потенциально опасное значение ввода клиента, и обработка запроса была прервана

Из поиска в Google говорится просто добавить validateRequest в директиву Page вверху, что я и сделал, но я ПОСТОЯННО получаю эту ошибку. Как видите, ниже мой код в представлении:

<%@ Page validateRequest="false" Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>

Ответы [ 5 ]

9 голосов
/ 16 декабря 2010

Попробуйте это решение. просто добавьте в TinyMce элемент управления

tinyMCE.init({
...
encoding : "xml"
});

http://wiki.moxiecode.com/index.php/TinyMCE:Configuration/encoding

http://blog.tentaclesoftware.com/archive/2010/07/22/96.aspx

5 голосов
/ 03 марта 2012

Попробуйте использовать атрибут [AllowHtml] в вашей модели.

class MyModel{
 [AllowHtml]
 public string Content{get;set;}
}
5 голосов
/ 04 августа 2009

Используйте декоратор [ValidateInput(false)].

Затем вы захотите написать метод HTMLEncode, чтобы сделать его безопасным.

Дайте мне знать, если вы хотите, чтобы я опубликовал тот, который я использую.

Добавлен код, который я использую

    public static class StringHelpers
{
    public static string HtmlEncode(this string value)
    {
        if (!string.IsNullOrEmpty(value))
        {
            value = value.Replace("<", "&lt;");
            value = value.Replace(">", "&gt;");
            value = value.Replace("'", "&apos;");
            value = value.Replace(@"""", "&quot;");
        }
        return value;
    }

    public static string HtmlDecode(this string value)
    {
        if (!string.IsNullOrEmpty(value))
        {
            value = value.Replace("&lt;", "<");
            value = value.Replace("&gt;", ">");
            value = value.Replace("&apos;", "'");
            value = value.Replace("&quot;", @"""");
        }

        return value;
    }
}
0 голосов
/ 09 апреля 2015

У меня была такая же проблема. Я не хотел отключать функцию проверки ASP.NET MVC, поэтому продолжал искать, пока не нашел решение:

Код плагина tinyMCE кодирует ваш контент (я использую старую версию)

tinyMCE.init({
   ...
   encoding: "xml"
});

И после этого я больше не получал ошибку проверки приложения. Затем я столкнулся с другой проблемой, когда я отредактировал свою форму, в коде появятся теги html

<strong>My input value</strong>

вместо этого

Мое введенное значение

Итак, я должен был декодировать html для этого поля при получении своих значений в Контроллере, например так:

...    
entity.field = HttpUtility.HtmlDecode(entity.field);
0 голосов
/ 01 октября 2013

Досадно, что в версии 4 tinymce они, похоже, убрали опцию кодировки: xml.

В итоге я использовал функцию кодирования HTML javascript из этого ответа , и на своей кнопке отправки я кодирую содержимое текстовой области перед отправкой формы, используя методы getContent и setContent в tinymce

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...