【发布时间】:2013-05-25 00:24:53
【问题描述】:
在较早的帖子“PHP 使用包含在页面上设置活动链接”中有一条评论“这太 waaaay 太可破解了”。你能向我解释一下它是如何被破解的,以及我如何用更安全的方法复制这个想法。
$page_id = $_REQUEST['page_id'];
<ul>
<li class="<?php echo ($page_id == "Home" ? "active" : "");?>">
<a href="/">Home</a>
</li>
<li class="<?php echo ($page_id == "Apps" ? "active" : "");?>">
<a href="#">Apps</a>
</li>
<li class="<?php echo ($page_id == "Forums" ? "active" : ""); ?>">
<a href="#">Forums</a>
</li>
</ul>
我正在为网站构建我的第一个插件,如果您在主页或统计信息等页面上,我需要将 php 设置为活动的链接。因此安装可能位于 www.website.com/home/plugin/statistics。我需要能够设置类
【问题讨论】:
-
您发布的代码没有安全风险。但是,如果您在执行其他操作时不清理用户输入,则可能存在安全风险。
-
但是,您不一定想将
?page_id=Forums附加到您网站上的每个网址。 -
请链接到之前的问题。您提到包含,如果您基于
$page_id的值包含,则其中可能存在漏洞。 -
@MichaelBerkowski 看起来好像来自这个答案 - stackoverflow.com/a/8476437/689579
-
@Sean Hmmm,实际上似乎没有任何有害的东西。它实际上非常整洁。可能发生的最坏情况是最终用户在 url 中手动提供
?page_id=。
标签: php