PHP - 使用GET包含cms(在web根目录之上),如何包含cms索引中的其他文件?

时间:2012-01-22 22:57:26

标签: php root out

我试图隐藏我的网站cms应用程序......

所以我想我会在我的网站上的任何随机页面添加一些php,其中包括对一些随机字符串的GET referance ...所以基本上,如果你去x页面,并添加?RANDOMSTRING cms索引已经包括了。这存储在Web根目录之上......这是php的基础:

if (isset($_GET['J7sd-H3sc9-As3R']))
{
require_once($docRoot . '/../../includes/admin/index.php');
}

基本上,index.php被布局为具有3个字段集的页面。在3个字段集中是与处理各种任务的各种应用程序相关的各种链接。通过与上述代码相同的方式访问它们。它们保存在Web根目录中,可以通过http ...

访问

这一切都运行得很好,但问题现在出现了,当我试图访问cms的任何特定部分时...那么本来会发生什么:

http://www.mysite.com/admin/part/

现在是:

include($_SERVER['DOCUMENT_ROOT'] . '/../../includes/admin/part/index.php');

或类似的......

所以现在我去

的页面
http://www.mysite.com/randomDirectory/

并添加:

http://www.mysite.com/randomDirectory/?J7sd-H3sc9-As3R

我被发送到我的cms ...很酷......但当我尝试点击任何部分时,我得到这个标题:

http://www.mysite.com/randomDirectory/?part

,页面刷新为:

http://www.mysite.com/randomDirectory/

如果这是有道理的......

是否可以向我提供有关我要完成的任务的任何意见或建议?我不确定是否有可能开始,但看起来很简单。

非常感谢任何回复,谢谢!

1 个答案:

答案 0 :(得分:1)

我想你应该在页面中每个链接的末尾添加类似

的内容
<?php if (isset($_GET['J7sd-H3sc9-As3R'])) echo '?J7sd-H3sc9-As3R'; ?>

示例:

http://www.mysite.com/randomDirectory/randomPage<?php if (isset($_GET['J7sd-H3sc9-As3R'])) echo '?J7sd-H3sc9-As3R'; ?>

修改

更简单的方法是以这种方式使用会话:

<?php

session_start();

if (isset($_GET['J7sd-H3sc9-As3R']))
{
    $_SESSION['token'] = 'J7sd-H3sc9-As3R';
}

if (!isset($_SESSION['token']) || $_SESSION['token'] !== 'J7sd-H3sc9-As3R')
{
    exit;
}

// go on with your page

?>

通过这种方式,当您在URL中打开包含令牌的页面时,会话将启动并且令牌将保存在会话中,因此它应该无需在每个URL中插入令牌,直到您关闭浏览器。