Vb.net 如何允许用户输入html注释
使用MVC,EF4.2。我正在处理一个有评论部分的应用程序。现在如果用户输入包含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
<b>text</b>
文本
我明白了
“异常危险的请求。检测到表单值…”
[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非注释解决方案如下:
我也查看了这些属性,但它们不允许通过注释提交XSS和恶意代码吗?是的,如果您使用的是较旧的视图引擎(我忘记了名称),这是一种折衷您可以编写
它将对值进行编码,或者如果您使用razor@
语法,它将对htmlIf进行编码。如果您担心xss和其他代码,请查看库