为了账号安全,请及时绑定邮箱和手机立即绑定

Html 编码/解码和 Html.Raw

Html 编码/解码和 Html.Raw

C#
森林海 2021-09-19 15:43:10
我听说不建议在 Razor 视图中使用 HTML.Raw,如果是这样,我有问题。我正在使用实体框架与我的 SQL 数据库进行交互。我也使用 SummerNote 作为前端的编辑器。现在我的视图代码在 @{} 块中,我相信它做了一些编码/解码。场景是用户在 SummerNote 编辑器中输入一些文本并应用一些格式(例如将单词加粗)并单击保存。这将生成一个 HTML 字符串并将其传递给我的控制器:<p>Test <b>string </b>with formatting.</p>在控制器中,我使用 HTML encode 进行编码:customerData.Description = HttpUtility.HtmlEncode(summerNoteFieldData);然后将其发送到DB。它在 DB 中如下所示:&lt;p&gt;Test &lt;b&gt;string &lt;/b&gt;with formatting.&lt;/p&gt;然后在呈现它时的视图中,我这样做:<div class="summernote">@Html.Raw(@HttpUtility.HtmlDecode(@Model))</div>因此,如果我删除 Html.Raw,那么我将看到上面的 HTML 字符串而不是格式化的字符串。这是安全和正确的方法吗?可以改进吗?感谢您的任何帮助。
查看完整描述

1 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

您应该在视图中打印时进行 HTML 编码(使用@Model)。

不要在其他任何地方编码或解码;不要在您的数据库中存储编码内容。


查看完整回答
反对 回复 2021-09-19
  • 1 回答
  • 0 关注
  • 314 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信