Посетителите ви попадат на страница за лотария, аптека или фалшива техническа поддръжка, а вие виждате сайта си нормално. Това е белегът на вмъкнато пренасочване, най-често условно. Това ръководство показва как да го възпроизведете, да го откриете във файловете или в базата данни и да затворите достъпа, през който е поставено.
wp-config.php..htaccess, PHP файловете, базата данни, настройките за адреса на сайта.wp-content/uploads, разширения за преинсталиране или изтриване.Пренасочване, поставено при пробив, избира към кого да се прилага. Най-често то пощадява човека, който управлява сайта, за да остане на място възможно най-дълго. Най-честите условия:
Referer на заявката.User-Agent.Затова съобщение от клиент, че сайтът ви го праща другаде, заслужава внимание, дори ако при вас всичко се показва правилно.
Поставете се на мястото на посетителя, който бива пренасочен:
Ако имате достъп до терминал, тази команда иска началната ви страница, като се представя за iPhone, дошъл от Google:
curl -s -i -A "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X)" -e "https://www.google.com/" https://www.vashiyat-sayt.com/
Прочетете първите редове на отговора. Код 301 или 302, последван от ред Location: към непознат адрес, означава пренасочване, направено от сървъра: то живее в .htaccess или в PHP файл. Код 200, докато браузърът все пак бива пренасочен, означава пренасочване, направено в страницата, с JavaScript: най-често то живее в базата данни или във файл на темата.
wp-config.php, константа DB_PASSWORD), след това всеки администраторски акаунт в WordPress.AUTH_KEY до NONCE_SALT в wp-config.php с нов комплект, генериран на https://api.wordpress.org/secret-key/1.1/salt/. Всички отворени сесии се затварят, включително тази на нападателя.wp config shuffle-salts
В корена на сайта, а понякога и в подпапка, .htaccess може да получи правила за пренаписване, добавени от нападателя. Блокът, който WordPress записва сам, е кратък и е ограден от # BEGIN WordPress и # END WordPress:
# BEGIN WordPress
# Директивите (редовете) между "BEGIN WordPress" и "END WordPress" са
# динамично генерирани и трябва да се променят само чрез филтрите на WordPress.
# Всяка промяна на директивите между тези маркери ще бъде заличена.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Правило RewriteCond, което проверява %{HTTP_REFERER} (google, bing, facebook) или %{HTTP_USER_AGENT} (android, iphone, mobile), последвано от RewriteRule към външен адрес, е пренасочването. Разширенията за кеш и за сигурност също записват свои блокове, означени с името им: сверете всеки блок със списъка на разширенията си, преди да го премахнете.
WP-CLI сравнява файловете на ядрото на WordPress и на разширенията с контролните суми, публикувани от WordPress.org, и изброява всеки променен или добавен файл:
wp core verify-checksums
wp plugin verify-checksums --all
Втората команда покрива разширенията, разпространявани през хранилището на WordPress.org. Разширение, купено от издателя му, се сравнява с ново копие, изтеглено от профила ви при него. Случаят е чест: сред 540 сайта на МСП на WordPress от нашето измерване от 1 септември 2026 г. 66 % носят поне едно разширение, което липсва в публичното хранилище.
Без WP-CLI две търсения дават първи подбор:
find . -name "*.php" -mtime -30
find wp-content/uploads -name "*.php"
Първото изброява PHP файловете, променени през последните 30 дни, второто изброява PHP файловете в папката с медийни файлове, където по подразбиране са подозрителни (някои разширения слагат там празен index.php, което е легитимно). Датата на промяна може да бъде подправена: стар файл на грешно място също заслужава проверка.
Отворете първо wp-config.php, index.php в корена, functions.php и header.php на активната тема и папката wp-content/mu-plugins: разширенията в нея се зареждат автоматично и не се изключват от администрацията. Признаците, които търсите: eval(, base64_decode(, gzinflate(, str_rot13(, дълги нечетими низове или window.location, последвано от адрес, който не познавате.
Пренасочване с JavaScript често се вмъква в съдържанието на страниците или в настройките, където нито един файл не го показва. WP-CLI търси низ във всички таблици на WordPress:
wp db search "<script"
wp db search "fromCharCode"
Без WP-CLI същите търсения се пускат в phpMyAdmin, в раздела SQL:
SELECT ID, post_title FROM wp_posts WHERE post_content LIKE '%<script%';
SELECT option_name FROM wp_options WHERE option_value LIKE '%<script%';
Някои резултати са легитимни: инструмент за статистика на посещенията, банер за бисквитки или джаджа, поставена от вас. Всичко, което не съответства на нещо, инсталирано от вас, заслужава проверка, особено скрипт, който сглобява адрес от кодове на символи.
В Настройки > Общи полетата „WordPress Адрес (URL)“ и „Адрес на сайта (URL)“ трябва да съдържат вашия домейн. Същите стойности могат да бъдат наложени в wp-config.php с константите WP_HOME и WP_SITEURL: проверете и двете места.
wp option get home
wp option get siteurl
wp user list --role=administrator
Когато константите са зададени, първите две команди връщат тяхната стойност. Последната изброява администраторите с датата им на регистрация; в администрацията същият списък се получава от менюто Потребители, филтрирано по ролята „Администратор“. Акаунт, който никой не разпознава, се изтрива, като съдържанието му се прехвърля на легитимен акаунт.
Изтриването на реда, който пренасочва, спира симптома. Достъпът, използван от нападателя, остава отворен, докато бъде открит, и пренасочването се връща в следващите дни. Редът, който дава траен резултат:
wp-admin и wp-includes, после пуснете wp core download --skip-content --force, която записва ядрото наново, без да докосва разширенията, темите и медийните ви файлове. Командата презаписва съществуващите файлове, но оставя добавените: затова двете папки се изтриват първо, а непознатите PHP файлове в корена се премахват ръчно.wp-content/uploads, правилата, добавени в .htaccess, и скриптовете, открити в базата данни.wp cron event list: задача с непознато име може да постави кода отново.Ако сайтът съхранява лични данни (формуляри, клиентски акаунти, поръчки), запишете часа, в който сте установили пробива. В Европейския съюз Общият регламент относно защитата на данните (ОРЗД) предвижда нарушението на сигурността на личните данни да бъде съобщено на надзорния орган не по-късно от 72 часа, след като сте разбрали за него, освен ако не съществува вероятност нарушението да породи риск за правата и свободите на физическите лица.
Когато Google открие пренасочването, Chrome може да покаже червена страница „Опасен сайт“, преди да отвори сайта, а Google може да изпише под резултата ви „Този сайт може да е променен от хакери“. Отчетът Проблеми със сигурността в Google Search Console показва какво е открито и на кои адреси. Когато сайтът е почистен, бутонът за заявка за преглед (Request Review в английския интерфейс) пуска проверката.
Премахнатото пренасочване оставя един въпрос: кой се грижи за сайта оттук нататък? Simafri поема сайта ви на WordPress, връща го онлайн върху основа, която хостваме, защитаваме и поддържаме актуална, и се грижи за него месец след месец. Домейн името и съдържанието остават ваши.
Вмъкнатият код чете User-Agent на браузъра и пренасочва само телефоните. Човекът, който управлява сайта, често от компютър, не вижда нищо. Тествайте от телефон с мобилни данни или с curl, като изпратите идентификатора на мобилен браузър.
Преинсталирането на ядрото записва наново файловете на WordPress, без да изтрива онези, които нападателят може да е добавил. Базата данни, темата, разширенията и папката с медийни файлове остават такива, каквито са, а точно там най-често се намират пренасочването и достъпът на нападателя. Новото ядро е една стъпка от почистването, която се допълва с базата данни, разширенията, акаунтите и паролите.
Защото достъпът, през който е поставено, още е там: добавен администраторски акаунт, PHP файл, скрит сред медийните файлове, планирана задача, уязвимо разширение. Всеки от тях позволява кодът да бъде поставен отново след почистването. Проверете акаунтите, папката wp-content/uploads, планираните задачи и версиите на разширенията, след това сменете паролите още веднъж.
Отворете Google Search Console и отчета „Проблеми със сигурността“: той изброява откритите проблеми и примерни адреси. Ако сайтът още не е потвърден в Search Console, потвърждаването чрез DNS запис покрива целия домейн.
Simafri
Да поговорим за Вашия проект
Кажете ни с няколко думи от какво имате нужда: отговаряме Ви бързо.
Благодарим! Вашето запитване е изпратено. Ще се свържем с вас скоро.
Предпочитате имейл? Пишете ни на support@simafri.com.