Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如何允许用户输入html注释_Vb.net_Asp.net Mvc 3_Model View Controller_Html Encode - Fatal编程技术网

Vb.net 如何允许用户输入html注释

Vb.net 如何允许用户输入html注释,vb.net,asp.net-mvc-3,model-view-controller,html-encode,Vb.net,Asp.net Mvc 3,Model View Controller,Html Encode,使用MVC,EF4.2。我正在处理一个有评论部分的应用程序。现在如果用户输入包含HTML的注释,例如 <b>text</b> 文本 我明白了 “异常危险的请求。检测到表单值…” 如何在进入数据库的过程中处理html?我应该去掉html吗?或者对它进行编码?我尝试对文本进行server.htmlencode,但仍然收到相同的错误消息 我已经读了很多关于这个问题的帖子,包括一些在某某的帖子 理想情况下,我希望能够允许有限数量的html标记,如em strong、a。反XS

使用MVC,EF4.2。我正在处理一个有评论部分的应用程序。现在如果用户输入包含HTML的注释,例如

<b>text</b>
文本
我明白了 “异常危险的请求。检测到表单值…”

  • 如何在进入数据库的过程中处理html?我应该去掉html吗?或者对它进行编码?我尝试对文本进行server.htmlencode,但仍然收到相同的错误消息 我已经读了很多关于这个问题的帖子,包括一些在某某的帖子

    理想情况下,我希望能够允许有限数量的html标记,如em strong、a。反XSS、HTML敏捷性、某种BB代码或降价风格编辑器仍然是推荐的方式吗?我知道Jeff有一段白名单代码——不过它已经有几年了

    你能行

    [ValidateInput(false)]
    public ActionResult foo()
    {
    }
    
    或者可以使用
    allowtml

       public class Foo
        {
            [AllowHtml]
            public string bar{ get; set; }
        }
    

    您可能还需要在web.config中设置requestValidationMode:

    </system.web>
      <httpRuntime requestValidationMode="2.0" />
    </system.web>
    
    
    

    有关更多详细信息,请参阅。

    MVC有一个属性,允许您指定一个属性,该属性应允许html,而无需完全禁用验证。这仍然是危险的,但它可以被限制在一个单一的财产,所以风险可以减轻。这是你的电话号码。应正确使用该属性来装饰模型中的相应属性:

    public class MyModel
    {
        public MyModel()
        {
    
        }
    
        // Some other stuff in here
    
        [AllowHtml]
        [HttpPost]
        public string MyHtmlString { get; set; }
    
    }
    

    我的allow html非注释解决方案如下:

  • 我的comment类中CommentText属性的AllowHtml
  • 允许标记的窄子集。使用Html消毒剂类清除不允许通过白名单的Html和内联脚本
  • 然后像平常一样将结果保存到数据库中
  • 在输出时,使用Html.Raw在注释中显示Html

  • 我也查看了这些属性,但它们不允许通过注释提交XSS和恶意代码吗?是的,如果您使用的是较旧的视图引擎(我忘记了名称),这是一种折衷您可以编写
    它将对值进行编码,或者如果您使用razor
    @
    语法,它将对htmlIf进行编码。如果您担心xss和其他代码,请查看库