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
是否超出根下的根平均值?我必须使用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;