• Форум посвящен самостоятельной (бесплатной) защите от ддос атак.
    Есть мануалы по настройке сервера от Ddos для сисадминов и готовые инструменты от ддос-атак для вебмастеров.

    Простое, эффективное, точное и проверенное бесплатное решение от мощных ддос-атак: PHP скрипт + Cloudflare, с панелью управления.

Защита от SQL-инъекций через htaccess

admin

admin

Администратор
Администрация
#1
В популярных современных движках защита от SQL-инъекций предусмотрена, но нельзя быть уверенным насчет дополнений и расширений к этим движкам. Кроме того, неприятен сам факт когда хат-боты сканируют сайт на наличие уязвимости - лучше их отсекать.

Эти правила htaccess уменьшают вероятность MySQL инъекции, Remote File Inclusion (LFI), base64 атаки и т.д
Код:
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(\.\.//?)+ [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC,OR]
RewriteCond %{QUERY_STRING} \=PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC,OR]
RewriteCond %{QUERY_STRING} (\.\./|\.\.) [OR]
RewriteCond %{QUERY_STRING} \=\|w\| [NC,OR]
RewriteCond %{QUERY_STRING} ^(.*)/self/(.*)$ [NC,OR]
RewriteCond %{QUERY_STRING} ^(.*)cPath=http://(.*)$ [NC,OR]
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} (\<|%3C).*iframe.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^i]*i)+frame.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [NC,OR]
RewriteCond %{QUERY_STRING} base64_(en|de)code[^(]*\([^)]*\) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} ^.*(\[|\]|\(|\)|<|>).* [NC,OR]
RewriteCond %{QUERY_STRING} (NULL|OUTFILE|LOAD_FILE) [OR] # защита от Remote File Inclusion 
RewriteCond %{QUERY_STRING} (\./|\../|\.../)+(motd|etc|bin) [NC,OR]
RewriteCond %{QUERY_STRING} (localhost|loopback|127\.0\.0\.1) [NC,OR]
RewriteCond %{QUERY_STRING} ^(%2d|\-)[^=]+$ [NC] # только для PHP в режиме CGI  
RewriteCond %{QUERY_STRING} (<|>|'|%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
RewriteCond %{QUERY_STRING} concat[^\(]*\( [NC,OR]
RewriteCond %{QUERY_STRING} union([^s]*s)+elect [NC,OR]
RewriteCond %{QUERY_STRING} union([^a]*a)+ll([^s]*s)+elect [NC,OR]
RewriteCond %{QUERY_STRING} (;|<|>|'|"|\)|%0A|%0D|%22|%27|%3C|%3E|%00).*(/\*|union|select|insert|drop|delete|update|cast|create|char|convert|alter|declare|order|script|set|md5|benchmark|encode) [NC,OR]
RewriteCond %{QUERY_STRING} (sp_executesql) [NC]
RewriteRule ^(.*)$ - [F,L]
Лучше не использовать все правила сразу, лишние проверки - дополнительная нагрузка на сервер. Лично у меня стоит только такое правило.
Код:
RewriteCond %{QUERY_STRING} (chr\(|select|base64|select) [NC]
RewriteRule ^(.*)$ – [F,L]
 
DeathStar

DeathStar

Member
#2
Для Nginx
Код:
## Block SQL injections
location ~union.*select.*\( { deny all; }
location ~union.*all.*select.* { deny all; }
location ~concat.*\( { deny all; }

## Block common exploits
location ~ (<|%3C).*script.*(>|%3E) { deny all; }
location ~ base64_(en|de)code\(.*\) { deny all; }
location ~ (\[|\]|\(|\)|<|>|M-CM-*|"|\;) { deny all; }
location ~ (%24&x) { deny all; }
location ~ (%0|%A|%B|%C|%D|%E|%F|127\.0) { deny all; }
location ~ \.\.\/  { deny all; }
location ~ ~$ { deny all; }
location ~ proc/self/environ { deny all; }
 
Последнее редактирование модератором:
A

antiddoser1

New Member
#3
Лучше не использовать все правила сразу, лишние проверки - дополнительная нагрузка на сервер. Лично у меня стоит только такое правило.
Код:
RewriteCond %{QUERY_STRING} (chr\(|select|base64|select) [NC]
RewriteRule ^(.*)$ – [F,L]
Ух е. А на вордпрессе такая штука нормально отрабатывать будет? Я просто боюсь вообще htaccess трогать — там малейшая запятая к краху сайта может привести :(
 
admin

admin

Администратор
Администрация
#4
Будет.
Можно же проверить работу сайта после правок htaccess
 
Сверху