如何使用Html.TextAreaForwithout編碼它? 我知道這是一個安全風險,但我有一個單獨的類,可以清理任何文本。ASP.NET MVC3,Html.TextAreaFor無編碼?
實施例:
@ Html.TextAreaFor(型號=> model.PostBodyText,10,100,1)
我打算與TinyMCE的使用它。
問候 烏鴉
UPDATE 我使用新的Razor視圖引擎。
如何使用Html.TextAreaForwithout編碼它? 我知道這是一個安全風險,但我有一個單獨的類,可以清理任何文本。ASP.NET MVC3,Html.TextAreaFor無編碼?
實施例:
@ Html.TextAreaFor(型號=> model.PostBodyText,10,100,1)
我打算與TinyMCE的使用它。
問候 烏鴉
UPDATE 我使用新的Razor視圖引擎。
您需要推出自己的:
<textarea cols="100" id="PostBodyText" name="PostBodyText" rows="10">
@MvcHtmlString.Create(Model.PostBodyText)
</textarea>
當然在安全性方面,這可能是因爲你的網站很危險的,現在容易受到XSS攻擊。所以問題是爲什麼要有一個單獨的類來清理所有的文本,當你可以簡單地依靠HTML助手爲你完成這項工作時?
作爲替代選項,您可能想使用ValidateInput,如here所述。 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爲好。猜猜它可能不是要走的路。
這是完全正確的。 [ValidateInput(false)]將允許HTML在您的表單中發佈。 – 2016-06-22 20:49:12
在模型屬性上使用[AllowHtml]
。正如我在In ASP.NET MVC 3, how do I get at the model using Razor Syntax in a Create() View?中所瞭解的。
謝謝....會有upvoted你,但我是新來的網站:) – RaVen 2010-11-22 12:45:58
@RVVEN,沒問題,當你問問題和接受答案,你獲得聲譽。 – 2010-11-22 12:51:10
是的,我知道,但我正在篩選出任何JavaScript標記...我只允許一些安全的html標記。但是,TinyMCE可能會導致安全漏洞。再次非常感謝。 :) – RaVen 2010-11-22 12:54:47