gpt4 book ai didi

PHP htmlentities 不足以阻止黑客从表单中注入(inject) html

转载 作者:可可西里 更新时间:2023-10-31 22:14:53 24 4
gpt4 key购买 nike

我有一个带有文本框的表单,该表单将数据发布到一个 php 文件,该文件使用“htmlentities”函数来安全地向网站所有者发送电子邮件。

问题是有人设法获得文本中的超链接,而 htmlentities() 没有删除它。

这是我的文本框 html:

<input name="usertext" type="text" />

这是我接收发布数据的 PHP 代码(我省略了电子邮件代码,因为这不是问题所在。我将其更改为只回显接收到的数据,这样我就可以尝试复制黑客所做的事情。如果我知道怎么做他做到了,我可以找到一种方法来阻止它发生):

echo trim(htmlentities($_POST["usertext"], ENT_QUOTES));

现在黑客发送了一些数据,结果是 html(源代码 - 这意味着它在浏览器中显示了一个正常的链接):

<a target="_blank" href="mailto:nyjfvw@fbjgzy.com">nyjfvw@fbjgzy.com</a>

我认为 htmlentities() 总是会阻止任何人输入任何类型的 html。如果我输入一个超链接,例如:

<a href="aaa" />

我得到:

&lt;a href="aaa" /&gt;

但是黑客的文本并不是这样编码的。

所以我的问题是:

  1. 黑客是如何输入 html 标签的,以至于 htmlentities() 函数对它没有任何作用?
  2. 我如何复制它进行测试? (可以用上面的问题来回答)

我做了一些研究,黑客可能会用 utf-7 或其他方式对他的文本进行编码?

我已经收到了几封带有这些相同链接的电子邮件。这个黑客显然是在测试我的网站,看他是否可以做 XSS 之类的。

最佳答案

好问题!我想你可以阅读这个 link解释问题并给出解决方案。

建议的解决方案是向浏览器指定(通过元标记)页面中使用的字符集。

关于PHP htmlentities 不足以阻止黑客从表单中注入(inject) html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14260665/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com