Как запретить доступ к определенным URL запрашиваемых страниц? - PullRequest
2 голосов
/ 07 июня 2009

Как запретить доступ к определенным URL запрашиваемых страниц?

Если у меня есть form.html, processFrom.php and getResults.php в корне моего веб-приложения, хотя processFrom.php не отображает никакого содержимого, как я могу запретить пользователю доступ к этому файлу, введя URL-адрес?

Ответы [ 3 ]

10 голосов
/ 07 июня 2009

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

Все, что не обслуживается веб-сервером, не должно храниться в веб-корне.

2 голосов
/ 07 июня 2009

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

В этом случае вы не можете скрыть файл в соответствии с рекомендациями. Вместо этого вы можете использовать токен, который создается при отображении формы, сохраняется в переменной сеанса, а также отправляется вместе с формой (). Прежде чем выполнять какую-либо обработку в processForm.php, убедитесь, что токен присутствует и совпадает с токеном в переменной сеанса. Кроме того, вы всегда должны санировать все формы ввода. Нет никаких препятствий для того, чтобы кто-то отправлял в скрипт все, что он хочет, если он доступен в Интернете.

0 голосов
/ 07 июня 2009

Когда вы работаете с веб-сервером Apache, я бы предложил создать файл .htaccess и запретить доступ к файлу.

Эти ссылки должны помочь вам настроить файл .htaccess для ваших нужд.

http://httpd.apache.org/docs/2.2/mod/core.html#files

Пример .htaccess:

<Files processFrom.php>
Order allow,deny
Deny from all
</Files>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...