Php 安全地存储脚本

Php 安全地存储脚本,php,security,scripting,module,Php,Security,Scripting,Module,我有一个为买卖双方服务的网站。因此,一旦我对用户类型进行了身份验证,我将加载相应的模块。见下面的逻辑: If $loggedinusertype = Buyer; include(/buyer_module.php); else include(/seller_module.php); 现在,我存储这些模块的方式与存储contact.php文件的方式相同。如果我访问domain.com/seller\u module.php,就可以访问这些模块。现在,我想知道如何以这样一种方

我有一个为买卖双方服务的网站。因此,一旦我对用户类型进行了身份验证,我将加载相应的模块。见下面的逻辑:

 If $loggedinusertype = Buyer;

 include(/buyer_module.php);

 else 

  include(/seller_module.php);

现在,我存储这些模块的方式与存储contact.php文件的方式相同。如果我访问domain.com/seller\u module.php,就可以访问这些模块。现在,我想知道如何以这样一种方式存储这些模块:没有人可以直接访问它,并且只能在include组件中使用。我有200个这样的模块……

您可以将它们存储在正常web目录之外的区域

假设您的web目录是/home/yoursite/www


您可以将包含文件放在/home/yoursite/其他目录中,没有人可以直接从您的站点访问它们。

您可以将它们存储在正常web目录之外的区域

假设您的web目录是/home/yoursite/www


你可以把你的include文件放在/home/yoursite/其他目录中,没有人可以直接从你的站点访问它们。

我有两条建议

  • 只需将所有模块存储在web根目录之外,这样就无法从浏览器访问它们

  • 如果上述方法不可行,请在主应用程序或包含各个模块的脚本中定义一个常量。在各个模块中,检查常量是否已定义。如果没有,则可以假定有人试图在浏览器中访问该文件,如果是,则该文件包含在脚本中

  • 示例2:

    index.php
    关于如何做到这一点,我有两条建议

  • 只需将所有模块存储在web根目录之外,这样就无法从浏览器访问它们

  • 如果上述方法不可行,请在主应用程序或包含各个模块的脚本中定义一个常量。在各个模块中,检查常量是否已定义。如果没有,则可以假定有人试图在浏览器中访问该文件,如果是,则该文件包含在脚本中

  • 示例2:

    index.php
    是否超出根下的根平均值?我必须使用shell来访问根目录下的文件…实际上我现在正在使用它:if(!$include){die(“Error”);}和$include=1;包括(“file.php”);这也没关系,如果(!isset($included)| |$included!==1){die('Error');}
    ,您可能希望将其更改为
    ,因为在某些配置中可能会向浏览器输出错误消息。如果它不在web根目录下,PHP仍然可以包含文件,但是读取/写入文件的唯一方法是通过SSH或FTP。是不是不在根目录下?我必须使用shell来访问根目录下的文件…实际上我现在正在使用它:if(!$include){die(“Error”);}和$include=1;包括(“file.php”);这也没关系,如果(!isset($included)| |$included!==1){die('Error');}
    ,您可能希望将其更改为
    ,因为在某些配置中可能会向浏览器输出错误消息。如果不在web根目录下,PHP仍然可以包含文件,但是读取/写入文件的唯一方法是通过SSH或FTP。但是我仍然可以使用include(“file.PHP”);但是我仍然可以使用include(“file.php”);功能正确。
    
    <?php
    define('SOME_CONSTANT', 1);
    // ...
    include 'buyer_module.php';
    
    <?php
    
    if (!defined('SOME_CONSTANT')) exit;