首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止使用PHP中的定义和定义函数进行直接访问

防止使用PHP中的定义和定义函数进行直接访问
EN

Stack Overflow用户
提问于 2013-12-12 04:00:32
回答 1查看 169关注 0票数 1

我试图使用定义函数和定义函数,以避免热链接/直接访问PHP脚本,但由于某种原因,它无法工作。

我遇到的问题是,它根本无法工作,而且我收到了“热链接是不允许的”消息,即使我首先访问index.php并遵循链接和/或post表单。

下面是我试图做的事情的一个例子:

index.php

代码语言:javascript
复制
<?php
define("ACCEPT",TRUE);
?>
<html>
...

core.php

代码语言:javascript
复制
<?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的定义?”没有回答我的问题,也没有帖子“定义和定义为不允许直接访问”。

EN

回答 1

Stack Overflow用户

发布于 2013-12-12 04:08:36

这是相当数量的程序所做的。只需创建一个标头,检查定义,如果未定义,则重定向/退出。这样做没有什么错,但它只是增加了每个页面所需的行/代码的数量。这可能会让人感到困惑,因为定义需要在一个位置,然后请求的页面必须被包含,或者需要包含具有定义的页面。这都是关于结构的。

下面是一些你可以做的事情:

.htaccess -将每个请求重定向到index.php

index.php -定义一个变量,充当一个路由器,根据请求数据获取/包含要显示的页面。

childpage.php -检查变量是否存在(意味着它包括在内),然后做任何需要做的事情。

另一种选择是将敏感代码放置在am htaccess受保护的目录中。

您也可以使用一个框架来完成大量的任务。

或者,如果您的主机允许您编辑vhost配置(如果您只能访问公共目录,它们可能不会编辑),您可以将文档根目录更改为更高的目录。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20534784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档