ASP.NET MVC3,Html.TextAreaFor 没有编码?
如何在不编码的情况下使用 Html.TextAreaFor? 我知道这是一个安全风险,但我有一个单独的类可以清理任何文本。
示例:
@Html.TextAreaFor(model =>model.PostBodyText, 10, 100, 1)
我计划将其与 TinyMCE 一起使用。
问候 RaVen
更新 我正在使用新的 Razor 视图引擎。
How can I use the Html.TextAreaForwithout encoding it?
I know it's a security risk but I have a separate class that sanitizes any text.
Example:
@Html.TextAreaFor(model =>model.PostBodyText, 10, 100, 1)
I'm planning to use it with TinyMCE.
Regards
RaVen
UPDATE
I'm using the new Razor View Engine.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您需要自己动手:
当然,就安全性而言,这可能非常危险,因为您的网站现在很容易受到 XSS 攻击。所以问题是,当您可以简单地依靠 HTML 帮助器来为您完成这项工作时,为什么要使用一个单独的类来清理所有文本呢?
You will need to roll your own:
Of course in terms of security this could be very dangerous as your site is now vulnerable to XSS attacks. So the question is why having a separate class that sanitizes all the text when you can simply rely on the HTML helpers to do the job for you?
作为替代选项,您可能想要使用 此处。 MVC 风格的一个例子是:
我认为这更像是 MVC 的方式。现在您的控制器告诉您该控制器方法存在安全问题。您的视图可以是使用 html 帮助程序等的任何普通视图。请注意,这将启用各种输入,而不是过滤。 它可以与 TinyMCE 一起使用。
//edit
需要在新版本的 MVC 中添加
woops 我发现您还 到 webconfig 中。我想这可能不是一条路。
As an alternative option you might wanna use ValidateInput as described here. An example in MVC style would be:
I think that is more the MVC way to go. Now your controller tells you there is a security issue in that controller method. Your view can be any normal view using html helpers etc. Note that this enables all sorts of input, not filtered. It will work with TinyMCE though.
//edit
woops I see you need to add
to webconfig as well in new versions of MVC. Guess it might not be the way to go.
在模型属性上使用
[AllowHtml]
。正如我在 在 ASP.NET MVC 3 中,如何在 Create() 视图中使用 Razor 语法获取模型?。Use
[AllowHtml]
on the model property. As I learned in In ASP.NET MVC 3, how do I get at the model using Razor Syntax in a Create() View?.