.htaccess удалить часть URL в PHPthumb - PullRequest
0 голосов
/ 30 ноября 2011

Я провел исследование и не смог найти ничего полезного

У меня проблема с phpthumb,

http://localhost/sandbox/public/PhpThumb/phpThumb.php?src=../../../../../../../../../etc/passwd&w=140px&h=120px&q=100

Мне нужно заменить ../, выполняющую src.В основном, чтобы удалить все ../ вхождения.Или перенаправить на страницу ошибки.Я предпочитаю оба.

RewriteRule ^(.*)phpThumb\.php?(src)?(=)?(\.\.\/)*$ images/unknown.gif [NC] 

Я подозреваю, что вышеприведенное правило, которое я создал, неверно.Пожалуйста, сообщите.

Заранее спасибо.

1 Ответ

2 голосов
/ 30 ноября 2011

Вы не можете делать такие модификации через mod_rewrite, как это.Это касается только реального URL, а не параметров GET.Вы должны обрабатывать их из исполняемого скрипта PHP.

Другой вариант - добавить RewriteCond, используя %{QUERY_STRING}, который (по сравнению с RewriteRule) способен работать с параметрами GET.Тогда вы можете использовать %1, %2, ... в запасной части вашего RewriteRule вместо $1, $2, ...

Примерно так:

RewriteCond %{QUERY_STRING} \.\./
RewriteRule phpThumb\.php$ images/unknown.gif [L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...