sairon 386 Posted November 27, 2018 Report Share Posted November 27, 2018 Залили шелл на сайт в корень, в wp-content, wp-content/uploads и еще хз куда. Цитата Known exploit = Fingerprint Match PHP Shell Exploit P1517 Known exploit = Fingerprint Match PHP REQUEST Exploit называется как-то так up.php, wp-up.php и схожие названия. Вопрос в следующем, как обезопасить в дальнейшем себя от залива подобного? Я-то сейчас сайт восстановлю из бекапа, но как обезопасить себя в будущем? Link to post Share on other sites
diplomdistant 656 Posted November 27, 2018 Report Share Posted November 27, 2018 seo-zona.ru Вячеславу заплатить копейку и он сделает всё в лучшем виде + проконсультирует Link to post Share on other sites
Модератор files 2844 Posted November 27, 2018 Модератор Report Share Posted November 27, 2018 Как вариант: откатитесь и обновите ядро WP и все плагины. Должно помочь. Если сайт содержит собственноручные плагины и коды, их модификации, нужно ставить некоторые защиты. Например: Создаем файл .htaccess и заливаем его в /wp-includes <FilesMatch "\.(php|php\.)(.+)(\w|\d)$"> Order Allow,Deny Deny from all </FilesMatch> <FilesMatch "\.(php|php\.)$"> Order Allow,Deny Deny from all </FilesMatch> <FilesMatch "\.(php|pl|py|jsp|asp|htm|shtml|sh|cgi)$"> ForceType text/plain </FilesMatch> Создаем файл .htaccess и заливаем его в /wp-content/uploads/ Order Allow,Deny Deny from all <FilesMatch "^[^.]+\.(?i:jpe?g|png|gif|pdf|ico|svg|css)$"> Allow from all </FilesMatch> <FilesMatch "\.(php|php\.)(.+)(\w|\d)$"> Order Allow,Deny Deny from all </FilesMatch> <FilesMatch "\.(php|php\.)$"> Order Allow,Deny Deny from all </FilesMatch> <FilesMatch "\.(php|pl|py|jsp|asp|htm|shtml|sh|cgi)$"> ForceType text/plain </FilesMatch> В файле functions.php текущей темы (вырезаем ненужное из ядра и прячем конфиденциальную инфо) function remove_plugins() { remove_action('wp_head', 'feed_links_extra', 3); remove_action('wp_head', 'feed_links', 2); remove_action('wp_head', 'rsd_link' ); remove_action('wp_head', 'wlwmanifest_link'); remove_action('wp_head', 'wp_generator'); remove_filter('comment_text', 'wptexturize'); remove_filter('the_content', 'wptexturize'); remove_filter('the_excerpt', 'wptexturize'); remove_action('wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0); remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0); remove_action( 'wp_head', 'rest_output_link_wp_head', 10 ); remove_action( 'wp_head', 'wp_oembed_add_discovery_links', 10 ); remove_action( 'wp_head', 'print_emoji_detection_script', 7 ); remove_action( 'admin_print_scripts', 'print_emoji_detection_script' ); remove_action( 'wp_print_styles', 'print_emoji_styles' ); remove_action( 'admin_print_styles', 'print_emoji_styles' ); remove_filter( 'the_content_feed', 'wp_staticize_emoji' ); remove_filter( 'comment_text_rss', 'wp_staticize_emoji' ); remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' ); } add_action('template_redirect', 'remove_plugins'); Открываем .htaccess в корне сайта и пихаем туда (запрещаем подозрительные обращения к сайту, блокируем распространенные боты, пауки и сканеры): # Защита от хакеров от files. Подробности в скайпе: websochka Options +FollowSymLinks -Indexes ########## Begin - Rewrite rules to block out some common exploits # If the request query string contains /proc/self/environ (by SigSiu.net) RewriteCond %{QUERY_STRING} proc/self/environ [OR] # Block out any script trying to base64_encode or base64_decode data within the URL RewriteCond %{QUERY_STRING} base64_(en|de)code[^(]*\([^)]*\) [OR] ## IMPORTANT: If the above line throws an HTTP 500 error, replace it with these 2 lines: # RewriteCond %{QUERY_STRING} base64_encode\(.*\) [OR] # RewriteCond %{QUERY_STRING} base64_decode\(.*\) [OR] # Block out any script that includes a <script> tag in URL RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR] # Block out any script trying to set a PHP GLOBALS variable via URL RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] # Block out any script trying to modify a _REQUEST variable via URL RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) # Return 403 Forbidden header and show the content of the root homepage RewriteRule .* index.php [F] RewriteCond %{REQUEST_METHOD} GET # to put some exceptions RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http:// [OR] RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=https:// [OR] RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=ftp:// [OR] RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(\.\.//?)+ [OR] RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC] # CustomLog insert-path-and-name-of-log common env=bad-range RewriteRule .* - [F] 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] RewriteCond %{QUERY_STRING} ^(%2d|-)[^=]+$ [NC] RewriteCond %{QUERY_STRING} ^(%2d|\-)[^=]+$ [NC] RewriteRule .* - [F] 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] # CustomLog insert-path-and-name-of-log common env=bad-range RewriteRule .* - [F] RewriteCond %{REQUEST_METHOD} ^(HEAD|TRACE|DELETE|TRACK) [NC,OR] RewriteCond %{THE_REQUEST} (\\r|\\n|%0A|%0D) [NC,OR] RewriteCond %{HTTP_REFERER} (<|>||%0A|%0D|%27|%3C|%3E|%00) [NC,OR] RewriteCond %{HTTP_COOKIE} (<|>||%0A|%0D|%27|%3C|%3E|%00) [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^$ [OR] RewriteCond %{HTTP_USER_AGENT} ^(java|curl|wget) [NC,OR] RewriteCond %{HTTP_USER_AGENT} (winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner) [NC,OR] RewriteCond %{HTTP_USER_AGENT} (libwww-perl|curl|wget|python|nikto|scan) [NC,OR] RewriteCond %{HTTP_USER_AGENT} (<|>||%0A|%0D|%27|%3C|%3E|%00) [NC,OR] RewriteCond %{QUERY_STRING} proc\/self\/environ [NC,OR] RewriteCond %{QUERY_STRING} etc\/passwd [NC,OR] <FilesMatch "\.(htaccess|htpasswd|ini|phps|fla|psd|log|sh|sql|inc)$"> Order Allow,Deny Deny from all </FilesMatch> # BEGIN Bad Bot Blocker SetEnvIfNoCase User-Agent "Abonti|aggregator|AhrefsBot|asterias|BDCbot|BLEXBot|BuiltBotTough|Bullseye|BunnySlippers|ca\-crawler|CCBot|Cegbfeieh|CheeseBot|CherryPicker|CopyRightCheck|cosmos|Crescent|discobot|DittoSpyder|DotBot|Download Ninja|EasouSpider|EmailCollector|EmailSiphon|EmailWolf|EroCrawler|Exabot|ExtractorPro|Fasterfox|FeedBooster|Foobot|Genieo|grub\-client|Harvest|hloader|httplib|HTTrack|humanlinks|ieautodiscovery|InfoNaviRobot|IstellaBot|Java/1\.|JennyBot|k2spider|Kenjin Spider|Keyword Density/0\.9|larbin|LexiBot|libWeb|libwww|LinkextractorPro|linko|LinkScan/8\.1a Unix|LinkWalker|LNSpiderguy|lwp\-trivial|magpie|Mata Hari|MaxPointCrawler|MegaIndex|Microsoft URL Control|MIIxpc|Mippin|Missigua Locator|Mister PiX|MJ12bot|moget|MSIECrawler|NetAnts|NICErsPRO|Niki\-Bot|NPBot|Nutch|Offline Explorer|Openfind|panscient\.com|PHP/5\.\{|ProPowerBot/2\.14|ProWebWalker|Python\-urllib|QueryN Metasearch|RepoMonkey|RMA|SemrushBot|SeznamBot|SISTRIX|sitecheck\.Internetseer\.com|SiteSnagger|SnapPreviewBot|Sogou|SpankBot|spanner|spbot|Spinn3r|suzuran|Szukacz/1\.4|Teleport|Telesoft|The Intraformant|TheNomad|TightTwatBot|Titan|toCrawl/UrlDispatcher|True_Robot|turingos|TurnitinBot|UbiCrawler|UnisterBot|URLy Warning|VCI|WBSearchBot|Web Downloader/6\.9|Web Image Collector|WebAuto|WebBandit|WebCopier|WebEnhancer|WebmasterWorldForumBot|WebReaper|WebSauger|Website Quester|Webster Pro|WebStripper|WebZip|Wotbox|wsr\-agent|WWW\-Collector\-E|Zao|Zeus|ZyBORG|coccoc|Incutio|lmspider|memoryBot|SemrushBot|serf|Unknown|uptime files" bad_bot Deny from env=bad_bot # END Bad Bot Blocker AddDefaultCharset utf-8 AddType 'text/html; charset=utf-8' .html .htm .shtml <files .htaccess> <IfModule mod_authz_core.c> Require all denied </IfModule> <IfModule !mod_authz_core.c> Order allow,deny Deny from all </IfModule> </files> <files readme.html> <IfModule mod_authz_core.c> Require all denied </IfModule> <IfModule !mod_authz_core.c> Order allow,deny Deny from all </IfModule> </files> <files readme.txt> <IfModule mod_authz_core.c> Require all denied </IfModule> <IfModule !mod_authz_core.c> Order allow,deny Deny from all </IfModule> </files> <files wp-config.php> <IfModule mod_authz_core.c> Require all denied </IfModule> <IfModule !mod_authz_core.c> Order allow,deny Deny from all </IfModule> </files> <IfModule mod_rewrite.c> RewriteEngine On # Защита системных файлов RewriteRule ^wp-admin/install\.php$ - [F] RewriteRule ^wp-admin/includes/ - [F] RewriteRule !^wp-includes/ - [S=3] RewriteRule ^wp-includes/[^/]+\.php$ - [F] RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F] RewriteRule ^wp-includes/theme-compat/ - [F] # Disable PHP in Uploads RewriteRule ^wp\-content/uploads/.*\.(?:php[1-7]?|pht|phtml?|phps)$ - [NC,F] # Disable PHP in Plugins RewriteRule ^wp\-content/plugins/.*\.(?:php[1-7]?|pht|phtml?|phps)$ - [NC,F] # Disable PHP in Themes RewriteRule ^wp\-content/themes/.*\.(?:php[1-7]?|pht|phtml?|phps)$ - [NC,F] </IfModule> Если у Вас ситуация сложная и вы не понимаете как и зачем все это, то меня всегда можно найти в скайпе websochka sairon, Elliot, A1exandr and 1 other 4 Link to post Share on other sites
GUEVARA 469 Posted November 27, 2018 Report Share Posted November 27, 2018 ответ очень прост - не использовать ВП, как можно использовать эту сплошную дырку, шаблоны которого в основном на 90% состоят из php файлов, в котором куча всякого шлака, я незнаю.... сколько не пытался себя обезопасить, какие плагины не ставил, и шаблоны строго с офф сайта и тд... итог один - залитые шеллы и засранные остальные сайты.... чую набегут вордпрессники и будут доказывать, что у меня руки не с того места раз взламывают, - ответ даю сразу - я согласен, что руки не с того места, но на ВП больше в жизни не вернусь, хватило опыта 3-5 лет работы с ним....дыраааааа.... дырявей движка не встречал kuzovbmw and woolfon 2 Link to post Share on other sites
demon932008 15 Posted November 27, 2018 Report Share Posted November 27, 2018 2 минуты назад, GUEVARA сказал: ответ очень прост - не использовать ВП, как можно использовать эту сплошную дырку, шаблоны которого в основном на 90% состоят из php файлов, в котором куча всякого шлака, я незнаю.... сколько не пытался себя обезопасить, какие плагины не ставил, и шаблоны строго с офф сайта и тд... итог один - залитые шеллы и засранные остальные сайты.... чую набегут вордпрессники и будут доказывать, что у меня руки не с того места раз взламывают, - ответ даю сразу - я согласен, что руки не с того места, но на ВП больше в жизни не вернусь, хватило опыта 3-5 лет работы с ним....дыраааааа.... дырявей движка не встречал На что в итоге перешли? Link to post Share on other sites
Модератор files 2844 Posted November 27, 2018 Модератор Report Share Posted November 27, 2018 Цитата ответ очень прост - не использовать ВП, как можно использовать эту сплошную дырку, шаблоны которого в основном на 90% состоят из php файлов, в котором куча всякого шлака, я незнаю.... Цитата я согласен, что руки не с того места Если вы не умеете водить автомобиль, но садитесь за руль и попадая в аварию начинаете хамить всем кто ездит на автомобиле - не совсем логично. Link to post Share on other sites
GUEVARA 469 Posted November 27, 2018 Report Share Posted November 27, 2018 6 minutes ago, files said: Если вы не умеете водить автомобиль, но садитесь за руль и попадая в аварию начинаете хамить всем кто ездит на автомобиле - не совсем логично. не подменяйте понятия, в данном случае хамства в сторону пользователей вп (водителей) не было, а только в сторону движка Link to post Share on other sites
sairon 386 Posted November 27, 2018 Author Report Share Posted November 27, 2018 20 минут назад, files сказал: Как вариант: откатитесь и обновите ядро WP и все плагины. Должно помочь. Если сайт содержит собственноручные плагины и коды, их модификации, нужно ставить некоторые защиты. Например: Создаем файл .htaccess и заливаем его в /wp-content/wp-includes <FilesMatch "\.(php|php\.)(.+)(\w|\d)$"> Order Allow,Deny Deny from all </FilesMatch> <FilesMatch "\.(php|php\.)$"> Order Allow,Deny Deny from all </FilesMatch> <FilesMatch "\.(php|pl|py|jsp|asp|htm|shtml|sh|cgi)$"> ForceType text/plain </FilesMatch> Создаем файл .htaccess и заливаем его в /wp-content/uploads/ Order Allow,Deny Deny from all <FilesMatch "^[^.]+\.(?i:jpe?g|png|gif|pdf|ico|svg|css)$"> Allow from all </FilesMatch> <FilesMatch "\.(php|php\.)(.+)(\w|\d)$"> Order Allow,Deny Deny from all </FilesMatch> <FilesMatch "\.(php|php\.)$"> Order Allow,Deny Deny from all </FilesMatch> <FilesMatch "\.(php|pl|py|jsp|asp|htm|shtml|sh|cgi)$"> ForceType text/plain </FilesMatch> В файле functions.php текущей темы (вырезаем ненужное из ядра и прячем конфиденциальную инфо) function remove_plugins() { remove_action('wp_head', 'feed_links_extra', 3); remove_action('wp_head', 'feed_links', 2); remove_action('wp_head', 'rsd_link' ); remove_action('wp_head', 'wlwmanifest_link'); remove_action('wp_head', 'wp_generator'); remove_filter('comment_text', 'wptexturize'); remove_filter('the_content', 'wptexturize'); remove_filter('the_excerpt', 'wptexturize'); remove_action('wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0); remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0); remove_action( 'wp_head', 'rest_output_link_wp_head', 10 ); remove_action( 'wp_head', 'wp_oembed_add_discovery_links', 10 ); remove_action( 'wp_head', 'print_emoji_detection_script', 7 ); remove_action( 'admin_print_scripts', 'print_emoji_detection_script' ); remove_action( 'wp_print_styles', 'print_emoji_styles' ); remove_action( 'admin_print_styles', 'print_emoji_styles' ); remove_filter( 'the_content_feed', 'wp_staticize_emoji' ); remove_filter( 'comment_text_rss', 'wp_staticize_emoji' ); remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' ); } add_action('template_redirect', 'remove_plugins'); Открываем .htaccess в корне сайта и пихаем туда (запрещаем подозрительные обращения к сайту, блокируем распространенные боты, пауки и сканеры): # Защита от хакеров от files. Подробности в скайпе: websochka Options +FollowSymLinks -Indexes ########## Begin - Rewrite rules to block out some common exploits # If the request query string contains /proc/self/environ (by SigSiu.net) RewriteCond %{QUERY_STRING} proc/self/environ [OR] # Block out any script trying to base64_encode or base64_decode data within the URL RewriteCond %{QUERY_STRING} base64_(en|de)code[^(]*\([^)]*\) [OR] ## IMPORTANT: If the above line throws an HTTP 500 error, replace it with these 2 lines: # RewriteCond %{QUERY_STRING} base64_encode\(.*\) [OR] # RewriteCond %{QUERY_STRING} base64_decode\(.*\) [OR] # Block out any script that includes a <script> tag in URL RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR] # Block out any script trying to set a PHP GLOBALS variable via URL RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] # Block out any script trying to modify a _REQUEST variable via URL RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) # Return 403 Forbidden header and show the content of the root homepage RewriteRule .* index.php [F] RewriteCond %{REQUEST_METHOD} GET # to put some exceptions RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http:// [OR] RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=https:// [OR] RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=ftp:// [OR] RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(\.\.//?)+ [OR] RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC] # CustomLog insert-path-and-name-of-log common env=bad-range RewriteRule .* - [F] 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] RewriteCond %{QUERY_STRING} ^(%2d|-)[^=]+$ [NC] RewriteCond %{QUERY_STRING} ^(%2d|\-)[^=]+$ [NC] RewriteRule .* - [F] 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] # CustomLog insert-path-and-name-of-log common env=bad-range RewriteRule .* - [F] RewriteCond %{REQUEST_METHOD} ^(HEAD|TRACE|DELETE|TRACK) [NC,OR] RewriteCond %{THE_REQUEST} (\\r|\\n|%0A|%0D) [NC,OR] RewriteCond %{HTTP_REFERER} (<|>||%0A|%0D|%27|%3C|%3E|%00) [NC,OR] RewriteCond %{HTTP_COOKIE} (<|>||%0A|%0D|%27|%3C|%3E|%00) [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^$ [OR] RewriteCond %{HTTP_USER_AGENT} ^(java|curl|wget) [NC,OR] RewriteCond %{HTTP_USER_AGENT} (winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner) [NC,OR] RewriteCond %{HTTP_USER_AGENT} (libwww-perl|curl|wget|python|nikto|scan) [NC,OR] RewriteCond %{HTTP_USER_AGENT} (<|>||%0A|%0D|%27|%3C|%3E|%00) [NC,OR] RewriteCond %{QUERY_STRING} proc\/self\/environ [NC,OR] RewriteCond %{QUERY_STRING} etc\/passwd [NC,OR] <FilesMatch "\.(htaccess|htpasswd|ini|phps|fla|psd|log|sh|sql|inc)$"> Order Allow,Deny Deny from all </FilesMatch> # BEGIN Bad Bot Blocker SetEnvIfNoCase User-Agent "Abonti|aggregator|AhrefsBot|asterias|BDCbot|BLEXBot|BuiltBotTough|Bullseye|BunnySlippers|ca\-crawler|CCBot|Cegbfeieh|CheeseBot|CherryPicker|CopyRightCheck|cosmos|Crescent|discobot|DittoSpyder|DotBot|Download Ninja|EasouSpider|EmailCollector|EmailSiphon|EmailWolf|EroCrawler|Exabot|ExtractorPro|Fasterfox|FeedBooster|Foobot|Genieo|grub\-client|Harvest|hloader|httplib|HTTrack|humanlinks|ieautodiscovery|InfoNaviRobot|IstellaBot|Java/1\.|JennyBot|k2spider|Kenjin Spider|Keyword Density/0\.9|larbin|LexiBot|libWeb|libwww|LinkextractorPro|linko|LinkScan/8\.1a Unix|LinkWalker|LNSpiderguy|lwp\-trivial|magpie|Mata Hari|MaxPointCrawler|MegaIndex|Microsoft URL Control|MIIxpc|Mippin|Missigua Locator|Mister PiX|MJ12bot|moget|MSIECrawler|NetAnts|NICErsPRO|Niki\-Bot|NPBot|Nutch|Offline Explorer|Openfind|panscient\.com|PHP/5\.\{|ProPowerBot/2\.14|ProWebWalker|Python\-urllib|QueryN Metasearch|RepoMonkey|RMA|SemrushBot|SeznamBot|SISTRIX|sitecheck\.Internetseer\.com|SiteSnagger|SnapPreviewBot|Sogou|SpankBot|spanner|spbot|Spinn3r|suzuran|Szukacz/1\.4|Teleport|Telesoft|The Intraformant|TheNomad|TightTwatBot|Titan|toCrawl/UrlDispatcher|True_Robot|turingos|TurnitinBot|UbiCrawler|UnisterBot|URLy Warning|VCI|WBSearchBot|Web Downloader/6\.9|Web Image Collector|WebAuto|WebBandit|WebCopier|WebEnhancer|WebmasterWorldForumBot|WebReaper|WebSauger|Website Quester|Webster Pro|WebStripper|WebZip|Wotbox|wsr\-agent|WWW\-Collector\-E|Zao|Zeus|ZyBORG|coccoc|Incutio|lmspider|memoryBot|SemrushBot|serf|Unknown|uptime files" bad_bot Deny from env=bad_bot # END Bad Bot Blocker AddDefaultCharset utf-8 AddType 'text/html; charset=utf-8' .html .htm .shtml <files .htaccess> <IfModule mod_authz_core.c> Require all denied </IfModule> <IfModule !mod_authz_core.c> Order allow,deny Deny from all </IfModule> </files> <files readme.html> <IfModule mod_authz_core.c> Require all denied </IfModule> <IfModule !mod_authz_core.c> Order allow,deny Deny from all </IfModule> </files> <files readme.txt> <IfModule mod_authz_core.c> Require all denied </IfModule> <IfModule !mod_authz_core.c> Order allow,deny Deny from all </IfModule> </files> <files wp-config.php> <IfModule mod_authz_core.c> Require all denied </IfModule> <IfModule !mod_authz_core.c> Order allow,deny Deny from all </IfModule> </files> <IfModule mod_rewrite.c> RewriteEngine On # Защита системных файлов RewriteRule ^wp-admin/install\.php$ - [F] RewriteRule ^wp-admin/includes/ - [F] RewriteRule !^wp-includes/ - [S=3] RewriteRule ^wp-includes/[^/]+\.php$ - [F] RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F] RewriteRule ^wp-includes/theme-compat/ - [F] # Disable PHP in Uploads RewriteRule ^wp\-content/uploads/.*\.(?:php[1-7]?|pht|phtml?|phps)$ - [NC,F] # Disable PHP in Plugins RewriteRule ^wp\-content/plugins/.*\.(?:php[1-7]?|pht|phtml?|phps)$ - [NC,F] # Disable PHP in Themes RewriteRule ^wp\-content/themes/.*\.(?:php[1-7]?|pht|phtml?|phps)$ - [NC,F] </IfModule> Если у Вас ситуация сложная и вы не понимаете как и зачем все это, то меня всегда можно найти в скайпе websochka Огромное спасибо, очень полезная инфа. Сейчас откачу к бекапу до заражения, вроде все файлы созданы одним числом. Потом обновлю WP (не хотелось бы, но придется, есть плагины которые не работают как мне нужно с новыми версиями WP), а потом применю ваш гайд. Похожее находил, когда гуглил, но такого полного и объемного гайда не видел. Спасибо. Link to post Share on other sites
kuzovbmw 587 Posted November 27, 2018 Report Share Posted November 27, 2018 Мой Вам совет. Всем. Сам WP из коробки достаточно безопасен, есть ручные методы. Не ставьте плагины, тем более сторонних разработчиков, они дырявые почти все. К примеру список похожих записей. кол-ва просмотров статей, вывести только нужные статьи, внешний вид, шаблоны и прочее можно делать легко без плагинов, мануала полно, та же ajax подгрузка, поиск, пагинация, хлебные крошки и даже сео настройки. Знаю людей которые ставят плагин чтобы favicon поставить это же бред, у меня стоит 5 плагинов, 4 из которых якорные. Но конечно же соглашусь что фреймворки лучше в 100 раз, но тут все от задачи зависит, одно дело слабенький блог, другое крупный проект vituson 1 Link to post Share on other sites
VIP vituson 675 Posted November 27, 2018 VIP Report Share Posted November 27, 2018 Если руки, простите, из жопы, любая CMS будет дырявой. Я с 2008 года использую WP, ни разу ни одного сайта не заразили вирусами, ни одного шелла не залили. Были проблемы со скрытыми ссылками, но это только из-за использования "бесплатных" шаблонов. Link to post Share on other sites
sairon 386 Posted November 27, 2018 Author Report Share Posted November 27, 2018 А есть какая-нибудь команда в cPanel чтобы найти файлы измененные в определенную дату? Как их автоматически найти? Плюс, вроде где-то видел плагин безопасности, который что-то похожее умеет. Подскажите плс. Link to post Share on other sites
VIP vituson 675 Posted November 27, 2018 VIP Report Share Posted November 27, 2018 50 минут назад, sairon сказал: Плюс, вроде где-то видел плагин безопасности, который что-то похожее умеет. Подскажите плс. belavir (php MD5) sairon 1 Link to post Share on other sites
VIP world-seo 157 Posted November 27, 2018 VIP Report Share Posted November 27, 2018 2 часа назад, sairon сказал: Плюс, вроде где-то видел плагин безопасности, который что-то похожее умеет. Подскажите плс. Wordfence Security....и предупредит, и не даст изменить файл, и сканирует по заданию, и еще много цего, сильно не нагружает систему, комплексно заменяет все существующие плагины безопасности sairon 1 Link to post Share on other sites
simbo 110 Posted November 27, 2018 Report Share Posted November 27, 2018 Вот почему я не работаю с wp вирусня прям и липнет к нему Link to post Share on other sites
sairon 386 Posted November 28, 2018 Author Report Share Posted November 28, 2018 20 часов назад, files сказал: Создаем файл .htaccess и заливаем его в /wp-content/wp-includes <FilesMatch "\.(php|php\.)(.+)(\w|\d)$"> Order Allow,Deny Deny from all </FilesMatch> <FilesMatch "\.(php|php\.)$"> Order Allow,Deny Deny from all </FilesMatch> <FilesMatch "\.(php|pl|py|jsp|asp|htm|shtml|sh|cgi)$"> ForceType text/plain </FilesMatch> отдельно в /wp-content и отдельно в /wp-includes ?? Link to post Share on other sites
Модератор files 2844 Posted November 28, 2018 Модератор Report Share Posted November 28, 2018 Цитата отдельно в /wp-content и отдельно в /wp-includes ?? Отдельно туда и туда, файлы то разные! В некоторых ситуациях нужна их корректировка, если на сайте перестает что-то работать. Link to post Share on other sites
sairon 386 Posted November 28, 2018 Author Report Share Posted November 28, 2018 18 минут назад, sairon сказал: заливаем его в /wp-content/wp-includes просто меня путь смутил)) Link to post Share on other sites
Модератор files 2844 Posted November 28, 2018 Модератор Report Share Posted November 28, 2018 Цитата просто меня путь смутил)) Чем именно? Мы запрещаем прямые обращения к файлам ядра WP извне. P.S. Там имеется ввиду корневой /wp-includes (напутал чуток) Link to post Share on other sites
hip12 104 Posted November 28, 2018 Report Share Posted November 28, 2018 В защите от XSS-атак поможет? Link to post Share on other sites
sairon 386 Posted November 28, 2018 Author Report Share Posted November 28, 2018 Только что, files сказал: Чем именно? Мы запрещаем прямые обращения к файлам ядра WP извне. Ну я к тому что вы пишете: Создаем файл .htaccess и заливаем его в /wp-content/wp-includes (такого пути нет, есть отдельно /wp-content и отдельно /wp-includes, поэтому я и уточнил, нижеследующий файл мы заливаем и туда и туда??) <FilesMatch "\.(php|php\.)(.+)(\w|\d)$"> Order Allow,Deny Deny from all </FilesMatch> <FilesMatch "\.(php|php\.)$"> Order Allow,Deny Deny from all </FilesMatch> <FilesMatch "\.(php|pl|py|jsp|asp|htm|shtml|sh|cgi)$"> ForceType text/plain </FilesMatch> Потом вы пишете: Создаем файл .htaccess и заливаем его в /wp-content/uploads/ (тут все ясно разрешаем конкретные типы файлов в папке /wp-content/uploads/) Order Allow,Deny Deny from all <FilesMatch "^[^.]+\.(?i:jpe?g|png|gif|pdf|ico|svg|css)$"> Allow from all </FilesMatch> <FilesMatch "\.(php|php\.)(.+)(\w|\d)$"> Order Allow,Deny Deny from all </FilesMatch> <FilesMatch "\.(php|php\.)$"> Order Allow,Deny Deny from all </FilesMatch> <FilesMatch "\.(php|pl|py|jsp|asp|htm|shtml|sh|cgi)$"> ForceType text/plain </FilesMatch> Link to post Share on other sites
Модератор files 2844 Posted November 28, 2018 Модератор Report Share Posted November 28, 2018 Цитата В защите от XSS-атак поможет? Да, поможет. Смотрите код корневого .htaccess Sairon, про пути напутал (исправил в первом ответе и отписал в P.S. сообщением выше). Link to post Share on other sites
hip12 104 Posted November 28, 2018 Report Share Posted November 28, 2018 8 минут назад, files сказал: Да, поможет. Смотрите код корневого .htaccess По поводу XSS отписал Вам вчера в личку в тему Скрытые ссылки. Буду очень признателен, если поможете. Link to post Share on other sites
Модератор files 2844 Posted November 28, 2018 Модератор Report Share Posted November 28, 2018 Цитата По поводу XSS отписал Вам вчера в личку в тему Скрытые ссылки. Буду очень признателен, если поможете. Продублируйте еще раз, так как нет вашего сообщения. Link to post Share on other sites
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now