可能重复:
如何阻止PHP文件访问Global Access

对于我正在从事的项目,我需要(“ xxxx.php”); 将我网站的某些部分包含到我的网站中。

例如,我有header.php,而我的网站只使用一个简单的require(“ header.php”)展示给全世界。

现在,如何使页面包含header.php的内容,但是如何使用户无法通过它访问它

http://mywebsite.com/header.php

===============>>#1 票数:4 已采纳

将文件放在Web服务器的DocumentRoot之外的某个位置。

===============>>#2 票数:3

设置网络服务器,以便:

  1. 您有一个公共目录,您的可访问文件所在的目录,例如静态媒体+ index.php等。

  2. 有一个资源目录,该目录位于您的公用文件夹之外。

  3. 设置网络服务器以从公共目录提供服务

  4. 包括这样:

    require(“ ../ private / header.php”);

===============>>#3 票数:3

您可以在索引文件中定义一个常量,然后在header.php检查,以header.php该常量存在。

// check if the header.php file is accessed directly
if (!define('MY_SECRET_CONSTANT')) {
    exit();
}

===============>>#4 票数:1

正如您从答案中看到的:有无数种方法可以执行此操作,这是两个非常简单的方法,不需要您更改目录结构:

index.php和其他包含header.php文件中:

define('INCLUDED', true);
require 'header.php';

header.php

if(!defined('INCLUDED')){
  die('Forbidden'); // or you could redirect to home ... whatever you want :)
}

或者,您可以禁止通过.htaccess访问。 因此,您甚至不必触摸代码:

<Files header.php>
  order allow,deny
  deny from all
</Files>

如果您的所有文件都在一个目录中,则只需拒绝对该目录的访问即可。

===============>>#5 票数:1

您可以使用htaccess来确保不查看特殊文件。 通过virtualhost条目可以实现相同的目的。

最好的做法是创建一个/ web文件夹,该文件夹是您的应用程序的“根”目录,并存储应可访问的所有内容。 其他文件夹可以放在其他任何地方,并包含在脚本中,以供用户访问。

您的结构可能如下所示:

/var/www/mySite/inc/header.php
/var/www/mySite/web/index.php (including ../inc/header.php)
/var/www/mySite/web/css/style.css

您的apache虚拟主机如下所示:

<VirtualHost *:80>
    ServerName www.mysite.com

    # Basic stuff
  DocumentRoot "/var/www/mySite/web"
    DirectoryIndex index.php
    <Directory "/var/www/mySite/web">
        AllowOverride All
        Allow from All
    </Directory>
</VirtualHost>

现在inc文件夹无法通过您的域进行访问,因为您的Web文件夹是每个来自url的人的根。 另一方面,您的脚本当然可以比其更低的导航并且包括来自任何地方的脚本。

  ask by InVert translate from so

未解决问题?本站智能推荐:

4回复

允许表单转到页面,但不允许基于URL的访问

晚上好,Stack成员, 我没有要问的经验,所以这可能是一个完全愚蠢的主意。 我们有几个不同的页面,要求提供不同的信息 在每种表单上,我们都有发布到下一页的信息,然后我们有php代码来收集前一页的信息并填写下一页-我们在第二页上有一些代码依赖于要填充的第一页否则,它们将保持空白
2回复

使用htaccess允许拒绝php包括但不允许Internet用户

是否可以将.htaccess文件设置为拒绝所有用户,但允许包括PHP函数或CSS之类的文件? 谢谢
1回复

Codeigniter中不允许直接脚本访问

我在我的php文件之一中使用了以下行,但显示如下错误 错误:“不允许直接脚本访问” 并且该行是require_once(dirname(__FILE__) . '/../../application/config/database.php'); 。 如何解决呢?
1回复

不允许他人访问的脚本

我一直在尝试运行Siwapp应用程序(基于Symphony框架的应用程序)的安装程序。 指定根Symphony文件夹后,我一直收到此错误。 SAFE MODE Restriction in effect. The script whose uid/gid is 158807/158807
4回复

codeigniter“不允许直接脚本访问”

即使我在控制器顶部添加了“ if(!defined('BASEPATH'))exit('No direct script access allowed');“。实际上,我需要在div中显示数据,我的ajax调用是:下面是ajax调用,该调用Createcaptcha获取数据,但响应而不是数据“不
2回复

Paypal错误:不允许用户执行此操作

我正在尝试使用Paypal SOAP API实现链式自适应支付。 在我的沙盒中它工作正常。 现在我将代码移动到了实时API。 当我使用主接收器付款时,它会返回以下错误: 不允许用户执行此操作 我有我的帐户的申请ID和批准。 我该如何解决这个错误?
1回复

Paypal GetVerifiedStatus与“不允许用户执行此操作”

我使用http://www.angelleye.com/download-angell-eye-php-class-library-for-paypal/中的 PHP库来获取Paypal帐户的状态。 在config中,api_username,api_password和api_signatur
1回复

不允许您执行请求的操作[重复]

这个问题已经在这里有了答案: codeigniter CSRF错误:“不允许您请求的操作。” 11个答案 我尝试在Codeigniter中使用Ajax获取数据,但是当我当时向我的控制器发送获取数据的请求时,出现此错误 您请求的操作是不允许的。 这是
1回复

PHP http错误不允许访问[重复]

这个问题已经在这里有了答案: 尝试从REST API获取数据时,请求的资源上不存在“ Access-Control-Allow-Origin”标头 10回答 无法加载https://test.com/ :对预检请求的响应未通过访问控制检查:所请求的资源上不存在“ A
1回复

MySQLi和PHP允许在表单提交中使用特殊字符,但不允许SQL插入吗? [重复]

这个问题已经在这里有了答案: 如何防止PHP中进行SQL注入? 28个答案 我一直在为网站上使用的“联系我们”表单编写PHP脚本,以允许用户评论该站点。 它具有多个字段,包括名称字段和用于注释的文本区域。 用户提交表单后,将注释输入数据库,然后查询数据库中的五