Надежное хранение скриптов - PullRequest
0 голосов
/ 08 марта 2012

У меня есть сайт, который обслуживает две стороны, покупателя и продавца. Поэтому, как только я идентифицировал тип пользователя, я загружаю соответствующий модуль. См. Логику ниже:

 If $loggedinusertype = Buyer;

 include(/buyer_module.php);

 else 

  include(/seller_module.php);

Теперь, как я храню эти модули, я храню файл contact.php. Эти модули могут быть доступны, если я зайду на domain.com/seller_module.php. Теперь я хочу знать, как хранить эти модули таким образом, чтобы никто не мог получить к ним доступ напрямую и мог использоваться только в компоненте include. У меня 200 таких модулей ....

Ответы [ 2 ]

2 голосов
/ 08 марта 2012

У меня есть два предложения о том, как вы можете это сделать.

  1. Просто сохраните все модули вне корневого веб-каталога, чтобы их нельзя было открыть из браузера.

  2. Если вышеприведенное невозможно, определите константу в вашем основном приложении или в сценарии, который включает отдельные модули.В отдельных модулях проверьте, была ли определена константа.Если это не так, то вы можете предположить, что кто-то пытается получить к нему доступ в браузере, если это так, то файл был включен вашим скриптом.*

    index.php

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

    customer_module.php и все другие модули, которые вы не хотите вызывать напрямую

    <?php
    
    if (!defined('SOME_CONSTANT')) exit;
    
2 голосов
/ 08 марта 2012

Вы можете хранить их в области за пределами вашего обычного веб-каталога.

Скажите, что ваш веб-каталог - / home / yoursite / www

Вы можете поместить файлы включения в / home /yoursite / some-other-directory, и никто не сможет получить к ним доступ с вашего сайта напрямую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...