为什么使用 MGans 的 HtmlSanitizer 删除这些标签?
Why are these tags removed with MGans's HtmlSanitizer?
我正在考虑使用 MGans 的 HtmlSanitizer
Nuget 包来清理我们应用程序的输入和输出。给定以下输入并应用 Sanitize()
方法,将返回以下内容:
输入:
this is my data
<p> here</p>
<script type="text/javascript"/>
<b>and here</b>
alert("something");
done here
<script type="text/javascript">alert("again");</script>
done
输出:
this is my data
<p> here</p>
done
如果第一个 <script/>
标签是不带参数的自闭合标签,为什么要删除标签 <b>and here</b>
、alert("something");
和文本 done here
?
在HTML4和HTML5中,<script>
标签不能自闭。自闭标签是规范中的 void elements。
解析时,第一个 <script>
标签被视为开始标签,最后一个 </script>
标签被视为结束标签。
浏览器会将斜杠视为格式错误的输入并忽略它,然后将其后的内容作为 JavaScript 代码执行。
我正在考虑使用 MGans 的 HtmlSanitizer
Nuget 包来清理我们应用程序的输入和输出。给定以下输入并应用 Sanitize()
方法,将返回以下内容:
输入:
this is my data
<p> here</p>
<script type="text/javascript"/>
<b>and here</b>
alert("something");
done here
<script type="text/javascript">alert("again");</script>
done
输出:
this is my data
<p> here</p>
done
如果第一个 <script/>
标签是不带参数的自闭合标签,为什么要删除标签 <b>and here</b>
、alert("something");
和文本 done here
?
在HTML4和HTML5中,<script>
标签不能自闭。自闭标签是规范中的 void elements。
解析时,第一个 <script>
标签被视为开始标签,最后一个 </script>
标签被视为结束标签。
浏览器会将斜杠视为格式错误的输入并忽略它,然后将其后的内容作为 JavaScript 代码执行。