3

我通过将 XHTML 放入一个单独的文件中,然后include()在 PHP 脚本中使用 PHP 的函数,将一些 XHTML 从 PHP 中分离出来。

这工作得很好,但是,.html如果用户知道地址,他们仍然可以直接访问文件。他们真的不能用它做太多,但我宁愿它不显示。

我过去曾看到一些脚本使用某种形式的推荐人检查,这是我要添加一些基本(注意我说的是“基本”)限制以防止通过直接访问它来查看它吗?

谢谢!

澄清:我忘了提到我想在 PHP 中执行此操作,所以没有网络服务器配置(将文件移出文档根目录,配置网络服务器以禁止访问等)。我认为这里最合乎逻辑的选择是使用define()常量检查,这实际上是我在其他我忘记的脚本中看到的,正如我在帖子中概述的那样。我意识到这可能不是最好的解决方案,但鉴于可以访问的 html 文件没有特别的价值,这个define()常量就足够了。

4

6 回答 6

3

只需将其移出文档根目录即可。但是,如果 PHP 处于安全模式,这将不起作用。

于 2010-01-15T03:33:15.517 回答
3

更改您的网络服务器配置以禁止访问该文件?

于 2010-01-15T03:34:21.600 回答
3

不,做这样的事情:

索引.php:

<?php

define('ALLOW_INCLUDE', true);

include('other.php');

?>

其他.php:

<?php

if (defined('ALLOW_INCLUDE') === false) die('no direct access!');

// your code

?>
于 2010-01-15T03:35:00.900 回答
3

如果您当前将所有文件(如 index.php)放入其中,/something/public_html/您将希望将文件移动到/something/. 这样用户就无法访问这些文件。

/public_html/称为您的文档根目录。该文件夹映射到example.com,并且基本上网站从那里开始。如果您将文件移动到网站启动位置的上方,则没有人可以通过浏览器访问这些文件。

include正如伊格纳西奥所说,如果打开安全模式,这将不起作用。

其他方法是在文件顶部放置一些内容

if(!defined("RUNNING_SCRIPT"))
    die("No Direct Access Allowed");

然后在你的 PHP 文件中放

 define("RUNNING_SCRIPT", true);

如果RUNNING_SCRIPT未定义,则表示他们正在直接访问它,并停止加载页面。这仅在 PHP 在.html文件上运行时才有效。

您还可以使用.htaccess文件来禁止访问该文件夹。

于 2010-01-15T03:35:16.637 回答
1

把它放在第一行是个好主意。

您也可以使用 .htaccess 或删除 index.html 页面作为后备。

<?php defined('SOME_CONSTANT_GLOBAL_TO_YOUR_APP') or die('Access denied.'); ?>
于 2010-01-15T03:43:10.447 回答
0

可能是apache访问控制? http://httpd.apache.org/docs/2.2/howto/access.html

于 2010-01-15T03:48:53.307 回答