Параметр запроса и перезапись URL и блокировка URL - PullRequest
0 голосов
/ 21 января 2020

На моем сайте разрешены только несколько параметров запроса. Некоторые параметры таковы, что их длина должна составлять всего 1 символ, то есть AZ или az или 1-0, но некоторые сканеры или хакеры, пытающиеся получить доступ к URL с длинными параметрами, которые не поддерживаются моим приложением php, могут заблокировать их в php прикладного уровня, проверяя параметры $ _GET, но мой сервер загружается, поэтому я хочу показать 403/404, если параметры недействительны

пример правильного UR ::

http://example.com/books/index.php?cat=A

но Получение

http://example.com/books/index.php?cat=response.write(9687913*9040912
http://example.com/books/index.php?cat=/.././.././.././.././.././.././.././../etc/./passwd%2500
http://example.com/books/index.php?cat=%22%2bconvert(int%2cCHAR(52)%2bCHAR(67)%2bCHAR(117)%2bCHAR(84)%2bCHAR(117)%2bCHAR(79)%2bCHAR(115)%2bCHAR(84)%2bCHAR(107)%2bCHAR(68)%2bCHAR(76))%2b%22
http://example.com/books/index.php?cat=))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
http://example.com/books/index.php?cat=CWS%07%0e000x%9c%3d%8d1N%c3%40%10E%df%ae%8d%bdI%08)%d3%40%1d%a0%a2%05%09%11%89HiP%22%05D%8bF%8e%0bG%26%1b%d9%8e%117%a0%a2%dc%82%8a%1br%04X;%21S%8c%fe%cc%9b%f9%ff%aa%cb7Jq%af%7f%ed%f2.%f8%01>%9e%18p%c9c%9al%8b%aczG%f2%dc%beM%ec%abdkj%1

Можно ли в .htaccess ограничить некоторые параметры, чтобы принимать только 1 символ, в противном случае для пользователей отображается 404

1 Ответ

0 голосов
/ 22 января 2020

Допустим, вы хотите ограничить параметр cat только одной буквой, а затем использовать это правило, чтобы возвращать ошибку 403 для всех остальных случаев значения cat:

RewriteCond %{QUERY_STRING} !(?:^|&)cat=[a-z](?:&|$) [NC]
RewriteRule ^ - [F]
...