为了账号安全,请及时绑定邮箱和手机立即绑定

使用 $_SERVER['PHP_SELF']; vs htmlentities($_SERVER[

使用 $_SERVER['PHP_SELF']; vs htmlentities($_SERVER[

PHP
慕容3067478 2022-07-16 17:46:08
IT 管理员告诉他们,他们对新获得的网站的安全扫描利用了以下共享代码段,该代码段用于网站的头部并打开了许多漏洞,应该改为使用 htmlentities。我遇到了这个线程,它提供了一些见解,但是在这个用例中,我不太确定漏洞是否存在或什至在可行性范围内,不是说由于服务器在 https 上而不可能吗?这是处理表单 PHP 最安全的方法吗如果它在 https 上,那不应该否定任何潜在的漏洞吗?原来的<link rel="canonical" href="https://www.ourwebsite.com<?php echo echo $_SERVER['PHP_SELF']; ?>" />新的<link rel="canonical" href="https://www.ourwebsite.com<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" />
查看完整描述

1 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

问题:用户可以控制$_SERVER['PHP_SELF']的内容

假设您的代码在 index.php 中

因此,当您调用https://www.yourserver.com/index.php时,您的代码将按预期工作。但是当有人调用时 index.php 也会调用

http://localhost/phpinfo.php/%22/%3E%3Cscript%3Ealert('Hello');%3C/script%3E%3Cbr

/%22/%3E%3Cscript%3Ealert('Hello');%3C/script%3E%3Cbr 部分称为 PATHINFO

当你尝试它时,你会看到一些 javascript 也会被执行。

一些邪恶的用户可以使用其中的任何 javascript 生成这样的链接,并通过电子邮件将其发送给他的受害者,希望他点击它,他的 javascript 将在受害者浏览器上执行。因此,他可能可以从该用户那里窃取会话 ID 并捕获他的会话


查看完整回答
反对 回复 2022-07-16
  • 1 回答
  • 0 关注
  • 118 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信