Jump to content

Защита сайта от SQL, XSS и пр.


Recommended Posts

Здравствуйте, подскажите пжлст как защитить сайт от SQL-инъекций, XSS-атак и прочего, через .htaccess. Интересует решение не для конкретного CMS, а что-нибудь общее, универсальное, если таковое есть. В сети много инструкций, но не нашел решения, чтобы в .htaccess прописать можно было для любого сайта и чтобы эти настройки не нарушали работоспособность сайта.

Либо посоветуйте какое-нибудь решение в виде сторонних скриптов или сервисов, которые защищают от данных инъекций и атак.

Link to post
Share on other sites

А причем тут htaccess и xss? во всех формах при любом post запросе необходимо экранировать 

 

htmlspecialchars($_POST['что принимаем'], ENT_QUOTES, 'UTF-8')

 

по поводу инъекций везде использовать pdo отказаться от процедурного стиля подключения и от mysql_query точно

проверить функции на предмет исполнимости из открытого источника. Этого вполне для начала хватит

Link to post
Share on other sites
3 часа назад, kuzovbmw сказал:

А причем тут htaccess и xss? во всех формах при любом post запросе необходимо экранировать 

 


htmlspecialchars($_POST['что принимаем'], ENT_QUOTES, 'UTF-8')

 

по поводу инъекций везде использовать pdo отказаться от процедурного стиля подключения и от mysql_query точно

проверить функции на предмет исполнимости из открытого источника. Этого вполне для начала хватит

4 часа назад, DevilStar сказал:

Прямые руки, здравый смысл, чистый код и cloudflare :)

Этого достаточно

Про пдо, прямые руки я в курсе, пдо не используется в данном скрипте, версия пхп 5.2 - меня интересует что можно добавить в .htaccess, чтобы сайту не навредить и защититься от иньекций и атак, так как в сети много пишут про варианты вставок директив разных в .htaccess для защиты от SQL, XSS  итд. и пжлст если по сути нечего ответить то не надо умные толкать речи - это не помощь. без обид.

Хостинг на макхосте. 

*примеры...

*****Защита от SQL иньекций и удаленного выполнения кода

RewriteCond %{QUERY_STRING} ^(.*)([-_a-z]{1,15})=(eval|chmod|chdir|mkdir|rmdir|whoami|uname|unzip|gunzip|grep|more|umask|telnet|ssh|ftp|which|mkmode|touch|logname|edit_file|search_text|find_text|php_eval|download_file|ftp_file_down|ftp_file_up|ftp_brute|mail_file|mysql|mysql_dump|db_query|file_get_contents)([^a-zA-Z0-9].+)*$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)(wget|shell_exec|passthru|popen|proc_open)(.*)$
RewriteRule .* - [F,L]

RewriteCond %{QUERY_STRING} (<|>|'|%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} (\<|%3C).*embed.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^e]*e)+mbed.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} (\<|%3C).*object.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^o]*o)+bject.*(>|%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} ^.*(\(|\)|<|>|%3c|%3e).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(\x00|\x04|\x08|\x0d|\x1b|\x3c|\x3e|\x7f).* [NC,OR]
RewriteCond %{QUERY_STRING} (NULL|OUTFILE|LOAD_FILE) [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} \-[sdcr].*(allow_url_include|allow_url_fopen|safe_mode|disable_functions|auto_prepend_file) [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] 

-------------------------------

*****Защита от XSS

# Blocks some XSS attacks
<IfModule mod_rewrite.c>
RewriteCond %{QUERY_STRING} (\|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule .* index.php [F,L]
</IfModule>

*вот что то в этом роде меня интересует...

Link to post
Share on other sites
  • VIP

<IfModule mod_headers.c>
  Header always append X-Frame-Options SAMEORIGIN
</IfModule>

<Files xmlrpc.php>
    Order Deny,Allow
    Deny from all
</Files>

<files .htaccess>
order allow,deny
deny from all
</files>

SetEnvIf user-agent "Indy Library" stayout=1
SetEnvIf user-agent "libwww-perl" stayout=1
SetEnvIf user-agent "Wget" stayout=1
deny from env=stayout

Link to post
Share on other sites
23 минуты назад, vituson сказал:

<IfModule mod_headers.c>
  Header always append X-Frame-Options SAMEORIGIN
</IfModule>

<Files xmlrpc.php>
    Order Deny,Allow
    Deny from all
</Files>

<files .htaccess>
order allow,deny
deny from all
</files>

SetEnvIf user-agent "Indy Library" stayout=1
SetEnvIf user-agent "libwww-perl" stayout=1
SetEnvIf user-agent "Wget" stayout=1
deny from env=stayout

пояснения что к чему и за что отвечает - не помешало бы

Link to post
Share on other sites

Вы шутите ? 5.2 php в 2021 году??? Версии ниже 5.3 вообще запрещено использовать, очень много уязвимостей и проблем, к тому же скорость низкая, делайте переезд на версии 5.3 и выше, в идеале 7, ну перепишите функции, циклы, массивы в некоторых местах, в htaccess не защититься от xss и иньекций, это еще одна мера, но основной упор делать на принимаемые данные из форм, экранирование, pdo и работа с файлами если они есть, тип, размер, кодировка и тп..

Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...