Запретить пользователям доступ к файлам, используя не переписанные Apache URL - PullRequest
0 голосов
/ 29 апреля 2011

Может быть, это нубский вопрос, но я только начинаю играть с apache и пока не нашел точного ответа.

Я настраиваю веб-приложение, используя массовую переписывание URL, чтобы показывать хорошие URLнапример [mywebsite.com/product/x] вместо [mywebsite.com/app/controllers/product.php?id=x].

Однако я все равно могу получить доступ к необходимой странице, набрав URL [mywebsite.com/app/controllers/product.php?id=x].Я бы хотел сделать это невозможным, т.е.перенаправьте людей на страницу с ошибкой, если они это сделают, и предоставьте им доступ к этой странице только с «переписанным» синтаксисом.

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

Ответы [ 2 ]

2 голосов
/ 29 апреля 2011

В вашем PHP-файле проверьте $_SERVER['REQUEST_URI'] и убедитесь, что к нему обращаются так, как вы хотите.

Нет причин, по которым это должно быть проблемой безопасности.

0 голосов
/ 29 апреля 2011
RewriteCond %{REDIRECT_URL} ! ^/app/controllers/product.php$
RewriteRule ^app/controllers/product.php$ /product/x [R,L]

RewriteRule ^product/(.*)$ /app/controllers/product.php?id=$1 [L]

Первое правило перенаправит любой запрос на /app/controllers/product.php без переменной REDIRECT_URL, установленной на чистый URL-адрес. Перезапись (последнее правило) установит эту переменную при вызове реальной страницы и не будет перенаправлена.

...