Ответы пользователя по тегу WordPress
  • Что за запрос на сервере?

    Panascanic
    @Panascanic
    Немного WP и немного SEO
    Не соглашусь про "по факту ничего нельзя сделать" и "не обращать внимания".

    Плагин Wordfence в нем прописываются все за*бистые запросы в стиле:

    /backup.sql.gz
    /backup.gz
    /directory.zip
    /directory.gz
    /backup.tar.gz
    /wp-info.php
    /public_html.zip
    /login.php
    /backup.sql.zip
    /installer-backup.php
    /readme.txt
    /clipboard.min.js
    /_config.cache.php
    /?author=1
    /cmd.php
    /author=1
    /unzipper.php
    /unzip.php
    /replace.php
    /index.php
    /options.php
    //options.php
    /xmlrpc.php
    /phpminiadmin.php
    /plugin.min.js


    При повторе подобных команд, запросов - автоматический бан.
    Особо настырных смотрим по IP здесь

    5e8ec3ff8c670145224197.png

    И вносим в бан:
    5e8ec41b02af7180945035.png

    Тут главное не переборщить, если с того пула адресов ходять клиенты - не дойдут :)

    2. Это он пытается запустить код с сайта? ThinkPHP - не установлен


    Да, у чудо бота есть набор прописанных сильно умным человеком, уязвимостей. Боты в некой мере хаотично бегают по сайтах и долбят что попало.
    Они приходят и с серверов Microsoft :) Alibaba, GoDaddy.

    Порой боты имитируют, что пришли с Google.com, потому что какой-то придур решил, что такой реферер как гугл никто не блочит... и много других не сильно умных патернов.

    Еще поможет правильный htaccess
    spoiler
    # BEGIN WordPress

    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]


    # Deny wp config files access

    Order deny,allow
    Deny from all


    # Deny wp config

    order allow,deny
    deny from all


    # Block all requests that contain the up_auto_log parameter in the query string
    RewriteCond %{QUERY_STRING} up_auto_log=.+ [NC]
    RewriteRule .* - [F,L]

    # Deny author
    RewriteCond %{QUERY_STRING} author=\d
    RewriteRule ^ /? [L,R=301]

    # 5G:[QUERY STRINGS]

    RewriteEngine On
    RewriteBase /
    RewriteCond %{QUERY_STRING} (\"|%22).*(<|>|%3) [NC,OR]
    RewriteCond %{QUERY_STRING} (javascript:).*(\;) [NC,OR]
    RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3) [NC,OR]
    RewriteCond %{QUERY_STRING} (\\|\.\./|`|=\'$|=%27$) [NC,OR]
    RewriteCond %{QUERY_STRING} (\;|\'|\"|%22).*(union|select|insert|drop|update|md5|benchmark|or|and|if) [NC,OR]
    RewriteCond %{QUERY_STRING} (base64_encode|localhost|mosconfig) [NC,OR]
    RewriteCond %{QUERY_STRING} (boot\.ini|echo.*kae|etc/passwd) [NC,OR]
    RewriteCond %{QUERY_STRING} (GLOBALS|REQUEST)(=|\[|%) [NC]
    RewriteRule .* - [F]


    # 5G:[REQUEST STRINGS]

    RedirectMatch 403 (https?|ftp|php)\://
    RedirectMatch 403 /(https?|ima|ucp)/
    RedirectMatch 403 /(Permanent|Better)$
    RedirectMatch 403 (\=\\\'|\=\\%27|/\\\'/?|\)\.css\()$
    RedirectMatch 403 (\,|\)\+|/\,/|\{0\}|\(/\(|\.\.\.|\+\+\+|\||\\\"\\\")
    RedirectMatch 403 \.(cgi|asp|aspx|cfg|dll|exe|jsp|mdb|sql|ini|rar)$
    RedirectMatch 403 /(contac|fpw|install|pingserver|register)\.php$
    RedirectMatch 403 (base64|crossdomain|localhost|wwwroot|e107\_)
    RedirectMatch 403 (eval\(|\_vti\_|\(null\)|echo.*kae|config\.xml)
    RedirectMatch 403 \.well\-known/host\-meta
    RedirectMatch 403 /function\.array\-rand
    RedirectMatch 403 \)\;\$\(this\)\.html\(
    RedirectMatch 403 proc/self/environ
    RedirectMatch 403 msnbot\.htm\)\.\_
    RedirectMatch 403 /ref\.outcontrol
    RedirectMatch 403 com\_cropimage
    RedirectMatch 403 indonesia\.htm
    RedirectMatch 403 \{\$itemURL\}
    RedirectMatch 403 function\(\)
    RedirectMatch 403 labels\.rdf
    RedirectMatch 403 /playing.php
    RedirectMatch 403 muieblackcat


    # Block access to PHP files
    RewriteCond %{REQUEST_URI} !^/wp-content/plugins/file/to/exclude\.php
    RewriteCond %{REQUEST_URI} !^/wp-content/plugins/directory/to/exclude/
    RewriteRule wp-content/plugins/(.*\.php)$ - [R=404,L]
    RewriteCond %{REQUEST_URI} !^/wp-content/themes/file/to/exclude\.php
    RewriteCond %{REQUEST_URI} !^/wp-content/themes/directory/to/exclude/
    RewriteRule wp-content/themes/(.*\.php)$ - [R=404,L]

    # Block wp-includes folder and files

    RewriteEngine On
    RewriteBase /
    RewriteRule ^wp-admin/includes/ - [F,L]
    RewriteRule !^wp-includes/ - [S=3]
    RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
    RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
    RewriteRule ^wp-includes/theme-compat/ - [F,L]


    # Block 64x links
    Options +FollowSymLinks -Indexes
    RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
    RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]

    # Deny Http headers reading
    RewriteEngine On
    RewriteCond %{REQUEST_METHOD} ^TRACE
    RewriteRule .* — [F]

    # Deny access to all .htaccess files

    order allow,deny
    deny from all
    satisfy all


    # Deny SQL injection
    RewriteCond %{query_string} concat.*\( [NC,OR]
    RewriteCond %{query_string} union.*select.*\( [NC,OR]
    RewriteCond %{query_string} union.*all.*select [NC]
    RewriteRule ^(.*)$ index.php [F,L]

    # Deny hackers agents
    SetEnvIf user-agent «Indy Library» stayout=1
    SetEnvIf user-agent «libwww-perl» stayout=1
    SetEnvIf user-agent «Wget» stayout=1
    deny from env=stayout

    #Disable site folders browsing
    Options All -Indexes


    p.s. когда только поставил свежий сайт, о котором никаких упоминаний нигде нету и в помине. Ставишь плагин Wordfence и смотришь, что через два часа прибегает какой-то бот с переходом с какого-то говносайта в стиле "список новых блогов".

    Через пару дней уже поперли запросы wp-login и прочая фигня. Что эффективно обламывается плагином WPS Hide Login - который делает custom URL для входа в админку. А сам запрос wp-login вносим правило бана, просто по приколу.
    Ответ написан
    7 комментариев
  • Здравствуйте! Не могу закинуть каталог продукции в Файле пдф на сайт, что сделать?

    Panascanic
    @Panascanic
    Немного WP и немного SEO
    Вы бы скриншоты прикрепили, чего пишет, как вы его закидываете...

    Если на WP я бы закинул файл (через С-panel)
    в wp-content/uploads/2020/04/file.pdf

    И вывел ссылку на сайте для скачивания в формате:
    https://Имя Сайта/wp-content/uploads/2020/04/file.pdf
    Ответ написан
  • WordPress, как скрыть информацию из профиля пользователя от поисковиков?

    Panascanic
    @Panascanic
    Немного WP и немного SEO
    Нужно дополнительно что-то делать, что бы скрыть эту информацию от любых поисковых ботов? Если да, то что?


    Видимо нужно настроить Robots.txt

    User-agent: * # Для всех поисковых систем
    Disallow: /cgi-bin
    Disallow: /?
    Disallow: /wp-
    Disallow: *?s=
    Disallow: *&s=
    Disallow: /search/
    Disallow: /author/
    Disallow: /users/
    Disallow: */trackback
    Disallow: */feed
    Disallow: */rss
    Disallow: */embed
    Disallow: /xmlrpc.php (у меня этот файл удален, умиляюсь попытками ломать сайт через файл, которого физически нету, долбят его по 7 раз на дню)
    Disallow: *utm=
    Disallow: *openstat=
    Disallow: /tag/ # Закрываем метки
    Disallow: /readme.html # Закрываем бесполезный мануал по установке WordPress (лежит в корне) - его проще удалить
    Disallow: *?replytocom
    Allow: */uploads
    Ответ написан