Skip to content

Instantly share code, notes, and snippets.

@muks999
Last active June 8, 2023 20:19
Show Gist options
  • Save muks999/f8b93ae364cf4c2c9f15675a1080c1d0 to your computer and use it in GitHub Desktop.
Save muks999/f8b93ae364cf4c2c9f15675a1080c1d0 to your computer and use it in GitHub Desktop.
Защищаем Wordpress!!!
/****1.-----Защита от XSS-инъекций. Доб код в htaccess----------------------****/
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%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]
/****1.-----END of 1.----------------------****/
/****2.-----Убираем показ лишней информации. Доб код в functions.php----------------------****/
add_filter('login_errors',create_function('$a', "return null;"));
/****2.-----END of 2.--------------------------------------------------------------------****/
/****3.-----Принудительное использование SSL Доб код в wp-config.php---------------------****/
define('FORCE_SSL_ADMIN', true);
/****3.-----END of 3.-------------------------------------------------------------------****/
/****4.-----Используем .htaccess для защиты файла wp-config----------------------------****/
<files wp-config.php>
order allow,deny
deny from all
</files>
/****4.-----END of 4.-------------------------------------------------------------------****/
/****5.-----Скрываем версию Wordpress'a Добавляем код в functions.php-----------------****/
remove_action('wp_head', 'wp_generator');
/****5.-----END of 5.-------------------------------------------------------------------****/
/****6.-----Баним спамеров и ботов. Доб код в htaccess---------------------****/
<Limit GET POST PUT>
order allow,deny
allow from all
deny from 123.456.789.012
deny from 234.567.890.*
</LIMIT>
/****6.-----END of 6.-------------------------------------------------------------------****/
/****7.---плагин для защиты от зловредных url-запросов.Созд новый файл wp-content/plugins/blockbadqueries.php---------------****/
<?php
/*
Plugin Name: Block Bad Queries
Plugin URI: perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests
Description: Protect WordPress Against Malicious URL Requests
Author URI: perishablepress.com
Author: Perishable Press
Version: 1.0
*/
global $user_ID;
if($user_ID) {
if(!current_user_can('level_10')) {
if (strlen($_SERVER['REQUEST_URI']) > 255 ||
strpos($_SERVER['REQUEST_URI'], "eval(") ||
strpos($_SERVER['REQUEST_URI'], "CONCAT") ||
strpos($_SERVER['REQUEST_URI'], "UNION+SELECT") ||
strpos($_SERVER['REQUEST_URI'], "base64")) {
@header("HTTP/1.1 414 Request-URI Too Long");
@header("Status: 414 Request-URI Too Long");
@header("Connection: Close");
@exit;
}
}
}
?>
/****7.-----END of 7.----------потом активируем плагин в админке------------------------****/
/****8.-----Защита от личеров(hotlinks). Доб код в htaccess---------------------****/
RewriteEngine On
#Замените ?mysite\.ru/ на адрес вашего сайта
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.ru/ [NC]
RewriteCond %{HTTP_REFERER} !^$
#Замените /images/nohotlink.jpg на название вашей картинки с лозунгом «личер идёт на…»
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]
/****8.-----END of 8.-------------------------------------------------------------------****/
/****9.-----NO default 'admin' запрос к БазеДанных---------------------****/
UPDATE wp_users SET user_login = 'Ваш новый логин' WHERE user_login = 'Admin';
/*меняем аавтора постов*/
UPDATE wp_posts SET post_author = 'Ваш новый логин' WHERE post_author = 'admin';
/****9.-----END of 9.-------------------------------------------------------------------****/
/****10.-----Защита директорий на сервере от просмотра. Доб код в htaccess---------------------****/
Options All -Indexes
/****10.-----END of 10.-------------------------------------------------------------------****/
@muks999
Copy link
Author

muks999 commented Feb 6, 2019

@muks999
Copy link
Author

muks999 commented Feb 6, 2019

7 пункт:
Работа этого плагина проста – он проверяет все длинные запросы (более 255 символов) и наличие php-функций eval или base64 в URI. Если что-то из этого находится, браузеру пользователя отдаётся страница с ошибкой 414.

@muks999
Copy link
Author

muks999 commented Feb 6, 2019

10 пункт
Вы можете либо добавить пустые файлы index.html в папки, просмотр которых хотели бы запретить. Либо дополнить наш .htaccess ещё одной строкой:
Options All -Indexes
Как это работает?
Пустой index.html будет выдаваться каждый раз, когда последует запрос к директории. Ну а директива в .htaccess просто запрещает апачу выдавать список содержимого директории.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment