Безопасность сайта
Вот и настал момент, когда можно переводить процесс продвижения стайта в активную фазу. Структура приложения сфомирована согласно моим планам, теперь можно натравливать поисковых ботов на сайт, ибо структура сайта кардинально менятся уже не будет. Конечно, не мешало бы еще несколько SEOшных приготовлений сделать, как, например, прикрутить sitemap и настроить robots.txt, но это можно сделать чуть позже. Все равно на первоначальную индексацию уходит пару недель. Это что касается Яндекса. Гугл в этом плане более жаден. Его вообще не надо просить — сам придет. Ко мне так он уже давно ходит — его роботов я вижу в access-логе. Как я уже ранее писал, скорее всего гугл мониторит сервисы whois на предмет появления новых доменов. Другого объяснения нет, ибо я нигде не светил свой домен и уж тем более гуглу ничего про него не говорил.
И так, начнем регистрацию в самых известных каталогах и поисковых сервисах, таких как yandex, google, bing, yahoo, rambler, ну еще можно aport. Чуть попозже я размещу в Инструментах страницу со ссылками по регистрации в этих сервисах. Вообще, давно хотелось сделать страничку а-ля СЕО-монитор, где можно узнать подробную информацию об индексах цитирования, позициях в посиковиках, ключевых словах и тд. Я понимаю, что такого навалом в сети, но своя рубаха, как говорится, ближе к телу. К тому же это неплохая разминка для ума.
Но прежде чем начать продвигать, проведем некоторые мероприятия по усилению безопасности сайта. Самый опасный кусок в нем — это блог, так как он сделан на публичном движке WordPress. В качестве первичных мер я выбрал следующее. Убрать прямую ссылку на страницу логина в админку с сайд-бара, а также спрятать саму админку. Благо, это делается несложно, хотя мой максимализм чуть опять не привел к потере времени — хотелось самому сделать. В итоге взял готовый плагин для WordPress, называется он Stealth Login. Функциональность проста. Он не дает попасть на страницу /wp_admin.php, вместо этого редиректит в корень блога. Также создает
в .htaccess скрытые ссылки для реальной админки, которые известны только владельцу. Тут, правда, возник небольшой казус в связи с тем, что у меня блог располагается не в корне сайта. Казус заключался в том, что Stealth Login прописал в .htaccess относительный путь к директории блога, что приводило к тому, что попасть в админку вообще никак нельзя было. Проблема решилась путем правки относительных путей на абсолютные.
Второе. Убрать версию движка из генерируемых html-страниц. Это нужно для того, чтобы злоумышленникам сложнее было при проникновении, так как с каким именно движком они имеют дело, они знать не будут. Соответственно, каким уязвимостям подвержен конкретно наш двиг, им тоже известно не будет. Конечно, если за дело возьмется профессионал, публичный двиг ничто не спасет от взлома. Это скорее защита от автовзлома и для самоуспокоения)) И так, самый простой и надежный способ убрать версию движка, это в начале файла functions.php текущей темы вставить
remove_action(‘wp_head’, ‘wp_generator’);
Кстати, по этой же причине не рекомендую писать в блоге, что мол «сегодня обновил двиг до такой-то версии».
Ну и третье придумать какое-нибудь анти-спам средство для WordPress. Поскольку гугл давно запреметил мой блог, спамеры тоже давно узнали о нем, и начали уже активно спамить. Мне конечно, приятно, но модерироватьутомляет ) Эту проблему тоже несложно решить. В файле wp-comments-post.php
$comment_author = ( isset($_POST[‘author’]) ) ? trim(strip_tags($_POST[‘author’])) : null;
$comment_author_email = ( isset($_POST[’email’]) ) ? trim($_POST[’email’]) : null;
меняем на
$spam_test_field = trim($_POST[’email’]);
if(!empty($spam_test_field) && trim($spam_test_field) != ») wp_die(‘NO SPAM!’);
$comment_author = ( isset($_POST[‘author’]) ) ? trim(strip_tags($_POST[‘author’])) : null;
$comment_author_email = ( isset($_POST[‘thatsmy’]) ) ? trim($_POST[‘thatsmy’]) : null;
добавляем в style.css стиль:
.eatthis {position : absolute; left : -1000px; }
в файле comments.php делаем следующие изменения.
находим строчку
<input type=»text» name=»email» id=»email» value=»<?php echo( $comment_author_email); ?>»
size=»24″ tabindex=»2″ />
и меняем на
<div><input type=»text» name=»email» id=»email» value=»» size=»22″ maxlength=»1″ tabindex=»2″ /></div>
<input type=»text» name=»thatsmy» id=»thatsmy» value=»<?php echo( $comment_author_email);?>» size=»24″ tabindex=»2″ />
<label for=»thatsmy»><?php _e(‘E-Mail (will not be published)’, ‘myschema);?> <?php if ($req)_e(‘(required)’, »myschema’); ?></label>
В результате спам бот будет считать, что запостил свой спам-коммент, а на самом деле, он даже не дойдет до модерации.
И это работает. Вот уже неделя, как я внедрил этот механизм, и с той поры ни одного спам-комментария. Зато появился первый настоящий комментатор — оставил коммент в посте про погоду.