htmlentities的double_escape选项有多安全?这可以绕过吗?

问题描述 投票:0回答:1

我注意到htmlentities / htmlspecialchars的'$ double_encode'选项。

如果将此功能设置为false,则不会将>之类的html实体再次编码为>

到目前为止,我发现了什么;转义:<h1>Hoi!</h1>使(对正确或错误的doenst mather进行两次转义,结果相同):

&lt;h1&gt;Hoi!&lt;/h1&gt;gt;

再次对此进行转义,使true上出现两次转义:

&amp;lt;h1&amp;gt;Hoi!&amp;lt;/h1&amp;gt;

再次在false上使用两次转义符来转义此字符:

&lt;h1&gt;Hoi!&lt;/h1&gt;gt;

我的问题是:将此double_escape设置为false有多安全?如果我将其设置为false而不是设置为true,是否有任何绕过或发现的错误会降低我的应用程序的安全性?

我在网上找不到与此相关的任何内容。

php security html-entities htmlspecialchars
1个回答
0
投票

如果创建一个应用程序,然后将其保留为false,并且您的用户(例如)通过您的应用程序向其朋友发送消息:

Hello! To store > in your index.html file, write it as &gt;

并且该方法仅引用>,并且将在朋友窗口中显示为

html:

Hello! To store &gt; in your index.html file, write it as &gt;

在浏览器中:

Hello! To store > in your index.html file, write it as >

和朋友会像:“什么?”

© www.soinside.com 2019 - 2024. All rights reserved.