jQuery技术:asp.net mvc编码在表单上

我在我的asp.net mvc表单中使用了富文本编辑器(带有textarea的nicedit),当我在post上提交表单时,因为它不是html编码,我收到以下消息:“一个有潜在危险的Request.Form值从客户端检测到“。 我如何在post上对textarea进行html编码? 我不想取消validation。 有没有办法在提交时使用html.encode助手?

谢谢。

    您可以使用ValidateInputAttribute修饰处理表单post的操作:

    [ValidateInput(false)] [HttpPost] public ActionResult SomeActionToHandleFormSubmission() { ... } 

    而不是关闭ValidateInput ,因为你对漏洞开放,你可以使用Javascript来编码特殊的字符。 这允许您不抛出错误消息:

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

    对于一些简单的输入(例如MyName格式的电子邮件),但仍然具有内置的MVCfunction,可以观察您的其他脚本注入。 当然,如果您需要在服务器上以正确的格式输入,则必须对其进行解码,如果再次输出则要小心

    如果已经使用了jQuery,可以很容易地将其添加到所有输入字段,如下所示

     $("input").on("change", function() { $(this).val(htmlEscape($(this).val())); }); 

    这里的htmlEscape是我自己改变特殊字符的function。

     function htmlEscape(str) { return str .replace(//g, '>'); } 

    根据您的需要,您可能希望使用内置的Javascript函数encodeURI来转义所有字符,或者扩展上述函数,例如:

     function htmlEscape(str) { return str .replace(/&/g, '&') .replace(/"/g, '"') .replace(/'/g, ''') .replace(//g, '>'); } 

    使用AllowHtml装饰字段将完成工作而不会忽略validation逻辑。 这解决了我的情况下没有编码/解码的问题。

     [System.Web.Mvc.AllowHtml] public string YourField { get; set; } 

    你在使用.net 4.0吗? 如果是这样,你也需要

     ' ' 

    在您的config.web文件中。

    需要了解更多jQuery教程分享asp.net mvc编码在表单上,都可以关注jQuery技术分享栏目—计算机技术网(www.ctvol.com)!

      以上就是jQuery教程分享asp.net mvc编码在表单上相关内容,想了解更多jQuery开发(异常处理)及jQuery教程关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/jquerytutorial/981931.html

      (0)
      上一篇 2021年12月13日
      下一篇 2021年12月13日

      精彩推荐