我试图使用定义函数和定义函数,以避免热链接/直接访问PHP脚本,但由于某种原因,它无法工作。
我遇到的问题是,它根本无法工作,而且我收到了“热链接是不允许的”消息,即使我首先访问index.php并遵循链接和/或post表单。
下面是我试图做的事情的一个例子:
index.php
<?php
define("ACCEPT",TRUE);
?>
<html>
...core.php
<?php
if (defined('ACCEPT'))
{
// ACCEPT is defined which means the user came here via index.php
}
else
{
// The user is most likely direct accessing core.php, abort.
echo "Hotlinking is not allowed";
exit;
}请注意,帖子“阻止直接访问,是否有可能欺骗一个php的定义?”没有回答我的问题,也没有帖子“定义和定义为不允许直接访问”。
发布于 2013-12-12 04:08:36
这是相当数量的程序所做的。只需创建一个标头,检查定义,如果未定义,则重定向/退出。这样做没有什么错,但它只是增加了每个页面所需的行/代码的数量。这可能会让人感到困惑,因为定义需要在一个位置,然后请求的页面必须被包含,或者需要包含具有定义的页面。这都是关于结构的。
下面是一些你可以做的事情:
.htaccess -将每个请求重定向到index.php
index.php -定义一个变量,充当一个路由器,根据请求数据获取/包含要显示的页面。
childpage.php -检查变量是否存在(意味着它包括在内),然后做任何需要做的事情。
另一种选择是将敏感代码放置在am htaccess受保护的目录中。
您也可以使用一个框架来完成大量的任务。
或者,如果您的主机允许您编辑vhost配置(如果您只能访问公共目录,它们可能不会编辑),您可以将文档根目录更改为更高的目录。
https://stackoverflow.com/questions/20534784
复制相似问题