ASP.NET MVC3,Html.TextAreaFor 没有编码?
-
27-09-2019 - |
题
如何在不编码的情况下使用 Html.TextAreaFor?我知道这是一个安全风险,但我有一个单独的类可以清理任何文本。
例子:
@Html.TextAreaFor(模型 =>model.PostBodyText, 10, 100, 1)
我打算将它与 TinyMCE 一起使用。
关于乌鸦
更新我正在使用新的 Razor 视图引擎。
解决方案
您将需要推出自己的:
<textarea cols="100" id="PostBodyText" name="PostBodyText" rows="10">
@MvcHtmlString.Create(Model.PostBodyText)
</textarea>
当然,在安全性方面这可能为您的网站现在易受XSS攻击是非常危险的。所以,问题是为什么有一个单独的类进行消毒时,你可以简单地依靠HTML佣工的所有文本为你做这项工作?
其他提示
由于作为rel="nofollow">这里。在MVC样式的一个例子是:
[ValidateInput(false)]
public ActionResult Method(){
return View()
}
[ValidateInput(false)]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Method(){
// your stuff here
RedirectToAction("index"); // or something
}
我觉得更多的是MVC的路要走。现在你的控制器会告诉你有在控制方法的安全性问题。你的观点可以使用HTML辅助等。注意,这使各种输入的任何普通视图,而不是过滤。的它将与TinyMCE的工作,虽然强>
//修改
woops我看你需要添加
<httpRuntime requestValidationMode="2.0"/>
在MVC的新版本要webconfig为好。猜猜这可能不是要走的路。
使用 [AllowHtml]
在模型属性上。正如我在 在 ASP.NET MVC 3 中,如何在 Create() 视图中使用 Razor 语法获取模型?.
不隶属于 StackOverflow