Безопасность PHP, это прокси файл? - PullRequest
1 голос
/ 22 августа 2011

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

Таким образом, кто-то может с нужным знанием «схватить» этот файл, а затем прочитать сценарий на стороне сервера.

Так что не безопаснее ли создать «прокси». например, AJAX отправляет вызов на страницу PHP (называемую обработчиком сценария) и передает строку с первым 2 символом, являющимся идентификатором запускаемого сценария PHP, а остальная часть строки является данными для этого сценария, затем обработчик сценария запускается и включает в зависимости от числа и возвращает отображенный обратно HTML, который затем отображается.

Что вы, ребята, думаете? Я сделал это, и это работает довольно хорошо, если я получаю исходный код, все, что я получаю, это HTML-страница с контейнером div и файл javascript с вызовами ajax для обработчика сценариев.

Ответы [ 2 ]

6 голосов
/ 22 августа 2011

Нет.Ваш «обходной путь» не устраняет проблему, если она когда-либо существовала.

Если клиент (браузер) запрашивает «ресурс» (например, страницу) с веб-сервера, веб-сервер не будетпросто обслуживайте ресурс так, как он находит его на диске.

Если вы правильно настроили свой веб-сервер, он будет знать, что

  • Файл .html, .gif, .png, .css, .js можно просто использовать как есть.
  • Файл .php, .php5, .cgi, .pl должен быть выполнен первым , а результирующий вывод должен быть обслужен.

Таким образом, при правильно настроенном сервере (и большинство приличных веб-серверов по умолчанию настроены правильно) захват источника PHP простым вызовом страницы невозможен - веб-сервер будет знать, как выполнить источник и вернуть результат.

Но

Одна из наиболее часто встречающихся ошибок при написании собственного сценария загрузки / скачивания позволяет пользователям загружать / скачивать .php (или другие исполняемые) файлы.Если ваш собственный сценарий «обслуживает» файл .php, читая его с диска и записывая в сеть, пользователи смогут увидеть ваш код.

Решение:

  • Донне пишите сценарии, если вы не знаете, что делаете.
  • Избегайте синдрома «не изобретено здесь» (не изобретайте колесо заново, если не уверены, что НУЖНО колесо лучше И может СДЕЛАТЬ лучшее колесо)
  • Не решать проблемы, которые не существуют!

Автор:

если ваш веб-сервербыл неправильно настроен и просто обслуживает файлы .php как просматриваемые / загружаемые файлы, ваше «решение» вызова через ajax не изменит это ... Ajax по-прежнему на стороне клиента, поэтому любой клиент можетОбойти ajax и получить сам скрипт.

4 голосов
/ 22 августа 2011

Если ваш веб-сервер настроен правильно, пользователи никогда не смогут просматривать фактическое содержимое файла PHP. Если они попытаются, они должны увидеть фактический вывод сценария PHP как ваш веб-сервер.читает и выполняет его, а затем передает его как ответ на HTTP-запрос.

Кроме того, вам необходимо понимать, что пользователи могут легко просматривать файл, который получает запрос AJAX ;все, что им нужно сделать, это установить Firebug или использовать инструменты разработчика Chrome, и они смогут увидеть полный URL-адрес, из которого извлекается файл.использовать этот тип «техники безопасности» для файлов PHP, и, во-вторых, «техника безопасности» не остановит никого, кто интересуется вашими данными.

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