安全地存储脚本

时间:2012-03-08 03:11:52

标签: php security scripting module

我有一个网站,为两方,买方和卖方提供服务。所以一旦我对用户类型进行了认证,我就会加载相应的模块。见下面的逻辑:

 If $loggedinusertype = Buyer;

 include(/buyer_module.php);

 else 

  include(/seller_module.php);

现在我存储这些模块的方式就是我存储contact.php文件的方式。如果我转到domain.com/seller_module.php,可以访问这些模块。现在,我想知道如何以这样的方式存储这些模块,即没有人可以直接访问它,并且只能在include组件中使用。我有200个这样的模块......

2 个答案:

答案 0 :(得分:2)

您可以将它们存储在普通网络目录之外的区域。

说你的网站目录是/ home / yoursite / www

您可以将您的包含文件放在/ home / yoursite / some-other-directory中,没有人可以直接从您的网站访问它们。

答案 1 :(得分:2)

我有两条关于如何做到这一点的建议。

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

  2. 如果上述操作不可行,请在主应用程序或包含各个模块的脚本中定义常量。在各个模块中,检查是否已定义常量。如果没有,那么你可以假设有人试图在浏览器中访问它,如果是,那么你的脚本就包含了该文件。

  3. 2的例子:

    的index.php

    <?php
    define('SOME_CONSTANT', 1);
    // ...
    include 'buyer_module.php';
    

    buyer_module.php以及您不想直接调用的所有其他模块

    <?php
    
    if (!defined('SOME_CONSTANT')) exit;