Если Ваш сайт попал под такое сообщение, то мы подскажем, что делать.

Возможные причины:

  • на сайте действительно есть какие-то вредоносные программы или код;
  • при загрузке файлов через браузер Google Chrome, Вы получаете сообщение о том, что файл может быть опасен для ПК;
  • сайт перенаправляет пользователей определенных стран и/или устройств.

Что делать, когда Вы видите в панели управления Search Console такое сообщение? Прежде всего отключить панику и включить здравый смысл. Начните действовать:

  1. Проверьте сайт на перенаправление.
    Эта проверка позволит Вам узнать перенаправляются ли пользователи, перейдя на Ваш сайт. Иногда перенаправления используют те, кто хочет получить трафик на партнерские ссылки, офферы или нечто подобное.
    Желательно использовать несколько инструментов для проверки.
  2. Проверьте файл .htaccess, если он есть в корне сайта, на наличие в нем стороннего кода.
  3. Проверьте исходный код сайта (перейдите на свой сайт и нажмите Ctrl+U).
  4. Включите инструменты разработчика (Ctrl+Shift+C), проверьте также исходный код сайта на наличие постороннего кода или подгруженных скриптами данных.
  5. Проверьте сайт на вирусы онлайн.
  6. На большинстве хостингов есть возможность проверки сайтов на наличие вирусов. Воспользуйтесь ею.
  7. Установите антивирус с актуальной базой вирусных сигнатур и скачайте все файлы сайта через FTP. Или заархивируйте сайт средствами хостинга, затем скачайте архив на свой ПК, распакуйте и проверьте файлы.
  8. Установите интернет-обозреватель Google Chrome (если нет), введите в нем адрес своего сайта, пробуйте скачивать ВСЕ доступные для загрузки файлы через него. Если на сайте есть вредоносное или нежелательное, или неизвестное ПО, то через этот браузер Вы узнаете об этом и на какой странице именно - тоже.
  9. Также рекомендуем обратить внимание на файлы PHP (если у Вас PHP сервер), которые лежат в необычных местах, например, у Вас есть папка images или img, в ней по-идее должны находится только изображения. Злоумышленники могут заливать в подобные папки php скрипты с именем типа:
    image.jpg.php

После выявления вредоносного или иного ПО, лучше всего его заархивировать в архив с паролем, не забыв сообщить пароль Вашим пользователям.

  1. Скачайте 7zip.
  2. Установите программу.
  3. Выберите файлы, которые необходимо архивировать и запаролить.
  4. Откройте 7zip (C:\Program Files\7-Zip) файл 7zFM.exe
  5. Перетащите необходимые файлы в программу 7-Zip.
  6. В появившемся окне найдите Encryption или Пароль введите необходимый пароль и нажмите кнопку ok.
  7. После чего, Google не сможет проверять файл на наличие в нем вредоносного ПО, а пользователи смогут его скачать через интернет-обозреватель.

После выполнения всех действий и устранения явных или косвенных, всех или части проблем, перейдите в Google Search Console:

  1. Нажмите на ссылку «Проверить состояние ресурса»
  2. «Обнаружено ли вредоносное ПО»
  3. Нажмите галочку «Проблемы устранены»
  4. Введите в текстовое поле любую информацию (например, 123)
  5. Нажмите кнопку «Запросить проверку»

Как не допустить повторного заражения Вашего сайта вирусами или shell'ами, или вредоносным/подозрительным ПО?

  1. Установите на папки, в которых находятся неизменяемые файлы (include, libs, etc) права 444 (только чтение), а также на все файлы, которые в принципе тоже статические, типа php библиотек, различных вспомогательных файлов.
  2. Если сервер поддерживает файл .htaccess, то добавьте его в корень сайта и обязательно поставьте на него права 444 (только чтение) со следующим содержимым:
    Options +FollowSymLinks
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^www.inverser\.pro
    RewriteRule ^(.*)$ https://inverser.pro/$1 [R=permanent,L]

    RewriteEngine On

    RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
    # Block out any script trying to base64_encode data within the URL
    RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [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]

    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    RewriteCond %{REQUEST_URI} !^/index\.php

    RewriteCond %{REQUEST_URI} (/[^.]*|\.(php|html?|feed|pdf|raw))$ [NC]
    # and the requested path and file doesn't directly match a physical file
    RewriteCond %{REQUEST_FILENAME} !-f
    # and the requested path and file doesn't directly match a physical folder
    RewriteCond %{REQUEST_FILENAME} !-d
    # internally rewrite the request to the index.php script
    RewriteRule .* index.php [L]

    Options -Indexes

    ErrorDocument 302 /-404
    ErrorDocument 401 /-404
    ErrorDocument 402 /-404
    ErrorDocument 403 /error403.php
    ErrorDocument 404 /-404
    ErrorDocument 500 /-404
    ErrorDocument 502 /-404

    # block humans.txt scans
    <IfModule mod_rewrite.c>
    RewriteCond %{QUERY_STRING} http\:\/\/www\.google\.com\/humans\.txt\? [NC]
    RewriteRule .* - [F,L]
    </IfModule>


    # Предотвращаем 404 ошибки для несуществующих директорий
    # ----------------------------------------------------------------------
    # без -MultiViews, Apache будет выдавать 404, если запрашиваемого каталога не существует
    # http://www.webmasterworld.com/apache/3808792.htm
    Options -MultiViews

    #убираем популярные атаки:
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteCond %{REQUEST_URI} \.php|\.ini|\.xml [NC]
    RewriteCond %{REQUEST_URI} \/bin\/ [OR]
    RewriteCond %{REQUEST_URI} \/cache\/ [OR]
    RewriteCond %{REQUEST_URI} \/components\/ [OR]
    RewriteCond %{REQUEST_URI} \/cli\/ [OR]
    RewriteCond %{REQUEST_URI} \/files\/ [OR]
    RewriteCond %{REQUEST_URI} \/images\/ [OR]
    RewriteCond %{REQUEST_URI} ^\/includes\/|^\/administrator\/includes\/ [OR]
    RewriteCond %{REQUEST_URI} \/language\/ [OR]
    RewriteCond %{REQUEST_URI} \/libraries\/ [OR]
    RewriteCond %{REQUEST_URI} \/media\/ [OR]
    RewriteCond %{REQUEST_URI} \/modules\/ [OR]
    RewriteCond %{REQUEST_URI} \/plugins\/ [OR]
    RewriteCond %{REQUEST_URI} \/templates\/ [OR]
    RewriteCond %{REQUEST_URI} \/sys\/ [OR]
    RewriteCond %{REQUEST_URI} \/xmlrpc\/
    RewriteRule ^(.*)$ index.php [R=404,L]

    #блокировка mysql инъекций
    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]
  3. В папки, где нет PHP скриптов (или, где к ним не требуется непосредственный доступ), можно расположить файлы .htaccess:
    <Files ~ "\.xml$">
    Order allow,deny
    Deny from all
    Satisfy all
    </Files>
    <Files ~ "\.ini$">
    Order allow,deny
    Deny from all
    Satisfy all
    </Files>
    <Files ~ "\.txt$">
    Order allow,deny
    Deny from all
    Satisfy all
    </Files>
    <Files ~ "\.php$">
    Order allow,deny
    Deny from all
    Satisfy all
    </Files>
    <Files ~ "\.html$">
    Order allow,deny
    Deny from all
    Satisfy all
    </Files>
  4. Если Вы намеренно оставляете файлы для загрузки на своем сайте, которые могут показаться подозрительными Google, то проверяйте их через Google Chrome. Если этот браузер предупреждает об опасном ПО, то установите на архив с необходимым файлом пароль и сообщите его своим пользователям.
  5. Проверяйте свой код на безопасность, учитывайте, что все данные, которые приходят из вне (от пользователя), необходимо проверять. Если Вы на PHP, используйте эту функцию:
    function challsrt($data){
    $array1 = array ('/*','*/','\'','"','//','ws:','wss:','blob:','localhost','^','*','http:','https:','<script','base64','where','/*','mysql','union','select'.'\0x');

    $data = strip_tags($data);
    $data = htmlspecialchars($data, ENT_QUOTES);
    $data = trim($data);
    return str_ireplace($array1, ' -DEL- ', $data);
    }
    Применять так:
    challsrt($_POST["load"])
    Используйте, если необходимо очистить код от всего и получить только текст.
  6. Присваивайте переменным необходимый тип (int), где это возможно, используйте безопасные подключения к базе данных. Например:
    $int = abs((int)$someString);
  7. UPD (2021-04-26): Google может считать Ваш сайт зараженным, даже если Вы используете какие-то ресурсы с хостинга/сервера, который содержит большое количество вредоносных программ/вирусов/подозрительного ПО. Например, у Вас есть сайт на домене site.com, а картинки Вы используете с сайта usesite.prousesite.pro может считаться Google'ом зараженным и Ваш сайт также будет считаться зараженным, пока Вы не устраните ссылки на сайт usesite.pro.
Внимание! Даже если Вы на 100% уверены, что на Вашем ресурсе больше нет проблем, это не значит, что Google считает также. Данное сообщение может появляться снова и снова, пока Вы не устраните ВСЕ угрозы.
Google Search Console: На ресурсе выявлены серьезные проблемы