Всем привет!
С вами Антропов Алексей, автор блога ws-life.ru и это мой первый гостевой пост!
В нем я расскажу об одной дырке в безопасности WordPress, которую я недавно обнаружил. По названию поста, наверное, уже все поняли, что это за уязвимость. В принципе, проблема не такая уж и серьезная, но думаю навредить может.
Поэтому я решил поделиться своим открытием на каком-нибудь блоге схожей по тематике этого поста. Выбор пал на этот блог. Так что автору этого блога повезло! И читателям, которые первыми узнают информацию.
О данной проблеме в интернете пишут очень мало или скорее вообще не пишут. Я нашел только один нормальный ресурс с решением данной проблемы. Давайте ближе к делу.
Помните статью на этом блоге о защите WordPress? Вот эту. Пункт второй – изменение стандартного имени пользователя в WordPress. А теперь представьте, что это имя пользователя светится в исходном HTML коде вашего блога. Оно используется для входа в админ-панель, я называю его логином. И не важно изменяли вы его или нет! Это ни есть хорошо. Согласны?
Как избавиться от логина в исходном коде?
Кто шарит в PHP функциях WordPress, тот легко может узнает ваш логин. А такие люди, возможно могут и взломать. Например путем брута. Логин то уже есть, осталось только парольчик подобрать…
Давайте еще ближе к делу. Как найти и исправить? Найти — легко. Если у вас есть блог, то зайдите на него и откройте статью, где есть комментарии. Кстати проблема именно в комментариях, я не упомянул об этом.
Открыли? Теперь откройте исходный код страницы и при помощи нажатия горячих клавиш Ctrl + F введите в поле поиска свой логин от админки блога. Если браузер ничего не найдет, то радуйтесь. Если найдет, будем исправлять.
Прежде, чем исправить, немножечко проясню ситуацию. Логин в коде выводится именно у тех комментариев, которые оставили именно вы, то есть администратор.
А если быть точнее, то логин будет выводится у всех комментариев, которые оставили зарегистрированные пользователи вашего блога — это к сведению. Наверняка вы единственный зарегистрированный пользователь, то бишь администратор. Но суть остается той же, нужно решать проблему!
Я побродил по различным блогам и увидел, что данная проблемка есть у многих блоггеров! Ну и специально для читателей Интернет Капусты, я сделал скриншоты вашей проблемки. И вот что из этого получилось:
Как видим, логин выводится после слов comment-author.
Вот так: comment-author-имя пользователя.
А теперь еще конкретней. Вывод логина производится функцией comment_class(). В *.php файле, который отвечает за вывод комментариев.
У меня – comments.php. У вас может быть другой файл. Это тоже к сведению, потому что копаться в коде такого файла мы не будем. Мы пойдем более простым путем, а именно дополним файл functions.php.
Итак. Кульминация! Заходим в папку вашей темы и открываем файл functions.php. Вставляем туда вот этот код:
1 2 3 4 5 6 7 8 9 |
add_filter('comment_class', 'udalit_class_avtora_kommentariya'); function udalit_class_avtora_kommentariya($klassi){ foreach($klassi as $kluch=>$klass) : if (strstr($klass, "comment-author-")) : unset($klassi[$kluch]); endif; endforeach; return $klassi; } |
Многие знают, но все же напомню, что вставлять код нужно всегда перед ?>.
Далее сохраняете и все. Заходите на свой блог и смотрите исходный код. Если ничего не изменилось, то почистите кеш сайта затем снова проверьте. Должно сработать. Я избавился от вывода имени пользователя в комментариях. Теперь можно спать со спокойной душой.
На этом все. С вами был Антропов Алексей, автор блога ws-life.ru.
Желаю вам удачи!
Понравился пост? Поддержи Интернет Капусту, нажми:
Интересная информация. На некоторых сайтах можно узнать логин не из комментариев, а по другому.
Так я, например, узнал логины некоторых комментаторов этого сайта. Это зависит от некоторых настроек на конкретном сайте.
Да уж. Меня вообще удивляет, о чем разработчики WordPress думали, когда создавали такую функцию? Неужели нельзя было сделать как-то по другому…
Любопытная информация. Но имеет ли она отношение к логину к админке? Скорее всего, это имя в граватаре. Или вообще непонятно что. По крайней мере, моё имя из кода в комментариях даже рядом с логином к админке сайта не лежало.
Логин в других строках кода записан
Не знаю с чем это связано, но предполагаю, что у вас что-то настроено в разделе «Пользователи». Я задавал вопросы некоторым блоггерам, у которых нашел данную проблемку. Выяснялось, что у всех отображалось именно имя пользователя, которое используется для входа в админ-панель. Тем не менее вам же лучше, если это не так .
Возможно разработчик вашего шаблона, как-то изменил структуру кода с дефолтного состояния на свой, что привело к примеру вывод не имени пользователя, а например ник, который можно вписать в разделе «Пользователи». Но это возможно, я не углублялся.
Нет, Алексей, в «Пользователях» у меня как раз логин написан. А тут моё имя латиницей, да ещё маленькими буквами и через дефис. Получается, что автоматом моё русское имя транслитерируется… А меню «Пользователи» вроде от шаблона не зависит.
Посмотри в самый низ коммента…
Интересная информация, думаю многим помогла, кто использует галимые пароли, например имя домашнего питомца, год рождение сестры друга и т.д. Я даже в код лезть не буду для изменений.
Если интересно, то можно посмотреть на мой логин… А теперь прикинь какой пароль?
Я этот комментарий пишу для читателей блога internetkapusta: не нужно бояться, что вас взломают по логину и паролю! Используйте длинные пароли из больших и маленьких латинских букв и конечно же цифр, делайте пароль очень длинным, WordPress их принимает. Используйте в пароле знаки препинания.
Алексей, всё намного проще! Нужно поставить плагины безопасности — взломщики будут автоматом отправляться в бан.
И уж многим читателям блога Лары не нужно лезть в фанкшенс.пхп. Положат свой блог и будут проклинать Лару и автора статьи.
P.S. Конечно, твой совет по поводу пароля всем надо применить в первую очередь. Потом уж всё остальное.
Можно и так, но лишняя безопасность не повредит. И еще вообще сменить ссылку на вход в админку, тогда будет здорово.
На счет того, что раздел «Пользователи» не зависит от шаблона — то скорее нет. Может я понял не так, но существуют функции, которые взаимодействуют с этим разделом. Следовательно их можно использовать в шаблонах.
Алексей, всё это (маскировка логина и смена ссылки) делается через плагины безопасности. Шаблон вообще ни при чём. В каких-то шаблонах, конечно, может быть урезанный функционал, но плагины гораздо надёжнее (если нет возможности реализовать всё это через код).
Я это знаю, у меня ссылка в админку блога скрыта таким же образом и именно это я и имел ввиду. На счет не реализации чего-либо в шаблоне через код — не согласен. Плагин — это дополнение, которое расширяет функционал и по своей сути тоже является кодом. И этот функционал кода можно не реализовывать в плагин, а наоборот расширить функционал шаблона.
Абсолютно не согласен. Я всегда относился и буду относиться к теме безопасности серьезно. Если сайт посещают очень много людей, то любая мелочь в теме безопасности может пригодиться. Практически все стремятся к развитию сайта. Разве нет? А открыть файлик и вставить код не так уж и трудно. Речь идет о CMS, которые и так не безопасны на 100%.
Это верно только в том случае, если в комментариях отражается настоящий логин и человек умеет правильно вставлять код (а это далеко не 100% даже среди опытных блогеров, к сожалению).
Конечно, если кто-то нашёл у себя подобную «дырку», то лучше её убрать.
Чтобы вставить код, достаточно знать пару правил и все. Я написал куда нужно вставить, перед чем нужно вставить. Я этого не делал бы, если бы знал что все это умеют .
Всё верно. Но вместе с тем к любой статье, где требуется работать с файлом функций и написаны подробные инструкции, найдётся несколько комментариев типа «Шеф, всё пропало!». А на женских блогах дамы-блогеры с большим стажем часто делятся своими страхами по поводу правки кода. Хотя дел-то на пару минут!
Ирина, если боитесь лезть в код, то можно попробовать другим более легким способом. Ссылку я давал ниже в комментариях.
А на саму защиту забивать я вам не рекомендую. Вот когда сделают что-то нехорошее с вашим сайтом,вот тогда узнаете всю важность защиты. Вот только тогда поздно уже будет.
Сергей, спасибо, но я в код лезть не боюсь и у меня на блоге довольно мощная система защиты. Да и невозможно узнать мой логин методом, который описал Алексей.
Я о других блогерах беспокоюсь. Безопасность своего блога лучше обеспечить иными способами, а не лишь тем, о котором идёт речь в статье.
Но, безусловно, все блогеры должны проверить данную «дырку» в безопасности на своём блоге.
Я тоже раньше заметил эту проблему и решил рассказать об этом остальным. Логин также можно и другим способом узнать и скрыть его. Кому интересно, можете почитать:
alpha-byte.ru/wordpresso/plaginyi/skryt-login-wordpress
Понятненько
А у меня в исходном коде прописано так:
Comment-author — vcard
Что это значит?
То есть, мой логин прописан исключительно в микроразметке? И его видет только Google?
У вас нет данной проблемы, вам не нужно беспокоиться . Обычно функцию comment_class вписывают в теги li или ol — это логично для древовидных комментариев. Уверен у вас тоже в коде шаблона есть данная функция, но логин не выводится. comment-author vcard в данном случае не имеет никакого отношения к функции comment_class.
Спасибо Алексей!
Статья — класс! Все по факту и ничего лишнего, блог ваш очень понравился, особенно дизайн — прям глаз радует :)
Благодарю! У вас блог тоже просто конфетка
Информация полезная, слдует внимательно заботиться о безопасности своего сата
спасибо! инфа интересная, но, как водится, истина, где-то далекооо))) если вас захотят взломать и настойчиво зададутся такой целью, то профи или даже полупрофи сделает это несмотря на все ухищрения
свежая история, сорри, что может не совсем по теме, друг у которого также есть блог на тему ставок на спорт, не угодил «конкурентам» … его «попросили» удалить одну статью … не послушал … через 2 дня — поломали: его почту, ВК, сайт и Скайп … и никакие «защиты» не помогли … а потом шепнули, что сделал это какой-то «умелец» всего за … 2.000 рублей …
Если сильно захотят то да, смогут. Без профессиональной защиты естественно
Да, «умельцы» тоже растут…
У меня однажды на майл.ру инфу убрали.
Сейчас, пытаюсь предвидеть ответную реакцию на написанное.
Не получилось у меня вставить этот код в functions.php.
Пришлось воспользоваться плагинами.
А что именно не получилось?