我用一个巨大的无格式文本文件组成一个大型HTML文件。现在我担心文本文件可能包含一些恶意的javascript代码。为了避免任何损坏,我扫描文本并替换任何<或者>用lt和gt。这非常有效,但它对表现并不是很好。
是否有某些标记或属性或其他允许我在HTML文件中关闭javascript的内容?在标题中也许?
答案 0 :(得分:3)
如果您拥有后端控件,则可以提供带标题的文件
Content-type: text/plain;
答案 1 :(得分:3)
由于您已考虑将所有<
和>
替换为HTML实体,因此一个不错的选择就是发送Content-Type: text/plain
标题。
如果您要包含想要显示文件内容的内容,请将&
替换为每个&
,<
替换每<
就足以正确显示该文件的内容文件。例:
输入:Huge wall of text 1<a2 &>1
输出:Huge wall of text 1<a2 &>1
未修改的输出,在浏览器中显示:Huge wall of text 11
(<..>
解释为HTML)
如果您无法修改后端(服务器端)的代码,则需要一个HTML解析器来清理代码。 JavaScript不是唯一的威胁,嵌入式内容(<object>
,<iframe>
,...)也可能非常恶意。看一下非常详细的HTML解析器&amp;的以下答案。消毒剂:
Can I load an entire HTML document into a document fragment in Internet Explorer?
答案 2 :(得分:1)
不,您无法从网页内禁用JavaScript,而是应该清理用户的所有输入,以确保没有恶意脚本通过您的脚本。
无论是删除所有脚本标记还是替换<
和>
,都需要确保输入是干净的。
答案 3 :(得分:0)
搜索<script
并替换为<!--<script
并搜索</script>
并替换为</script>-->
。
这应该注释掉文件中的所有脚本。
答案 4 :(得分:0)
你需要一个沙箱或干净的HTML代码。看看phpids或html净化器。