在我的.cshtml文件的某些部分中,我应该呈现用户使用Html-Editor输入的Html。
我的代码是:
<div id="description">
@Html.Raw(Model.Html)
<div>但是对于XSS Attacks来说,@Html.Raw()是不安全的,例如,如果用户输入的内容是这样的:
"<script>alert('XSS attack!')</script>"此脚本在进入此页面后运行!
如何防止在呈现Html时运行这些脚本(通常是XSS攻击)?
发布于 2020-09-28 01:35:28
您可以在呈现HTML之前对其进行编码:
@Html.Raw(Html.Encode(Model.Html))但这与使用以下命令呈现它是相同的:
@Model.Html如果你渲染超文本标记语言,使用视图源,或者浏览器的检查器,并复制生成的script标签,你会看到它已经被编码:
<script>alert('XSS attack!')</script>但我个人更喜欢使用Html.Raw和Html.Encode的组合,因为它使读者更清楚其意图是什么。
https://stackoverflow.com/questions/64091270
复制相似问题