Защита файлов PHP - PullRequest
       8

Защита файлов PHP

3 голосов
/ 09 сентября 2009

Привет и спасибо всем за чтение моего вопроса.

Я некоторое время работал над веб-программой на PHP, и мне было интересно, какие меры я должен предпринять, чтобы защитить исходный код перед его установкой на работающий сервер. Источник не распространяется, доступ к нему осуществляется через веб-сайт (пользователи используют веб-сайт, чтобы использовать его).

Сначала я бы хотел защитить исходные php-файлы от обнаружения и загрузки. Я не использую никаких фреймворков, просто php, и все файлы находятся в домашнем каталоге как index.php. Я читаю вокруг, и кажется, что robots.txt не очень эффективен для сокрытия. Я сталкивался с некоторыми публикациями людей, рекомендующих .htaccess, но я часто думал, что это для защиты файлов в каталоге с паролем, поэтому не уверен, есть ли способ сделать его подходящим для веб-приложения htaccess.

Во-вторых, я хотел бы защитить исходные файлы на случай, если кто-то получит к ним доступ (либо найдет их и загрузит их, либо администратору sys, у которого есть готовый доступ к серверу). Я думал об исходном шифровании с чем-то вроде ioncube. У моего хоста также есть GnuPG [с которым я не знаком, какие-либо мысли по этому поводу по сравнению с ioncube?]

Я не знаком с защитой исходного кода, поэтому любые идеи были бы хорошими, и, конечно, большое спасибо:)

Ответы [ 3 ]

3 голосов
/ 10 сентября 2009

Просто убедитесь, что ваш веб-сервер настроен для правильной обработки файлов .php, и что все файлы имеют правильное расширение .php (не .php.inc или подобное)

Пока ваш сервер выполняет PHP, никто не может загружать его исходный код (игнорируя любые дыры в безопасности вашего кода, что является другой темой)

Было время, когда было принято называть включенные файлы в соответствии с mystuff.php.inc - это плохая идея. Скажем, ваш сайт находится на «example.com», и вы сохраняете конфигурацию базы данных в config.php.inc - если кто-то угадает этот URL, он может запросить http://example.com/config.php.inc и получить логин вашей базы данных в виде простого текста ..

Хорошая идея - хранить конфигурацию и другие библиотеки в одном каталоге, так как bisko ответил - поэтому у вас есть структура каталогов, подобная ..

/var/example.com:
    include/
        config.php
        helper_blah.php
    webroot/
        index.php
        view.php

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

Что касается шифрования файлов, я не думаю, что это хорошая идея. Файлы должны быть незашифрованы, чтобы Apache (или любой сервер, который вы используете) мог получить к ним доступ. Если Apache может получить к нему доступ, ваш системный администратор тоже может это сделать.

Я не думаю, что шифрование - это решение ненадежного системного администратора.

0 голосов
/ 10 сентября 2009

Первый шаг, который вы должны сделать, - это удалить все ненужные файлы из корня сайта, поместить их в другое место и оставить только файлы, вызываемые из Интернета.

Например, если у вас есть эта настройка:

 /var/htdocs/mysexydomain.com/root/config.php
 /var/htdocs/mysexydomain.com/root/db.class.php
 /var/htdocs/mysexydomain.com/root/index.php
 /var/htdocs/mysexydomain.com/root/samplepage1.php

Возьмите все файлы на уровень выше, чтобы вы получили

 /var/htdocs/mysexydomain.com/includes/config.php
 /var/htdocs/mysexydomain.com/includes/db.class.php #see the includes dir? :)
 /var/htdocs/mysexydomain.com/root/index.php
 /var/htdocs/mysexydomain.com/root/samplepage1.php
0 голосов
/ 09 сентября 2009

Ну, во-первых, это безопасность веб-сервера, к которой вам следует обратиться за помощью при сбое сервера. Обычно для этого вы используете защищенный / заблокированный каталог или обращаетесь к файлам в виртуальном каталоге через веб-сервис.

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

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