Как защитить чувствительные файлы PHP, которые обрабатывают данные Jquery? - PullRequest
1 голос
/ 12 марта 2012

На моем веб-сайте есть страница search.php, которая отправляет $.get запросов на такие страницы, как search_data.php, search_user_data.php и т. Д.

Проблема в том, что все эти файлы находятся в моем общедоступномHTML-папка.

Даже если кто-то может перейти к www.mysite.com/search_user_data.php, все обработанные данные должным образом экранируются и обрабатываются, но на профессиональном уровне этого недостаточно, чтобы этот файл был доступен для общего доступа.

Я попытался переместить конфиденциальные файлы в мой веб-корень, однако, поскольку Jquery делает $.get запросы и передает переменные в URL, это не работает.

Кто-нибудь знает какие-либо методы для надежной защиты этих уязвимых страниц?

Ответы [ 2 ]

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

То, что вы описываете, нормально.

У вас есть файлы PHP, которые доступны в вашем каталоге www, чтобы apache (или ваш любимый веб-сервер) мог их читать и обрабатывать.Если вы удалите их, вы больше не сможете их достать, так что реальной возможности такого рода не будет.

Ведь все ваши PHP-файлы для AJAX - это обычные php-файлы, скорее всего, ваш другой проект также содержит php-файлы.Правильно ?Они не более или менее подвержены риску, чем любой скрипт на вашем сервере.

Убедитесь, что вы запрограммировали «очистить».Думайте о злых просьбах при написании ваших функций php, а не после их написания.Как вы уже сделали: правильно процитируйте все входящие входные данные, которые могут попасть в базу данных или секретную функцию.

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

Вдобавок к написанию своего кода как можно более "безопасного", вы можете добавить проверку кода в свой код.Это означает, что ваш PHP-файл будет реагировать, только если ваш сайт был указан как реферер при доступе к немуЭтого достаточно, чтобы заблокировать 80% детей там.Но с другой стороны: некоторые интернет-пользователи вообще не отправляют реферера, некоторые прокси фильтруют это.(Лично я бы их проигнорировал, половина (www) интернета на них все равно ломается)

htaccess может добавить еще один уровень защиты, вы можете сделать больше всего в PHP, но он все равно может вас заинтересовать: http://httpd.apache.org/docs/2.0/howto/htaccess.html

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

Вы можете хранить uid каждый раз, когда ваша страница загружается, и сохранять его в $ _SESSION ['uid'].Вы передаете этот идентификатор в javascript, выполнив:

var uid = <?php print $_SESSION['uid']; ?>;

Затем передаете его вместе со своим запросом get, сравните его с вашей $ _SESSION:

if($_GET['uid'] != $_SESSION['uid']) // Stop with an error message or send a forbidden header.

Если все в порядке, делайте то, что выneed.

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

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