Как защитить сайт от ошибок




Время чтения статьи
~2 минуты

Статья написана студентом Хекслета. Мнение автора может не совпадать с позицией редакции

Как защитить свой сайт от ошибок пользователей с помощью event.preventDefault... главное изображение

Когда пользователь отправляет форму на веб-странице, происходит событие submit. Вы можете использовать JavaScript для обработки этого события и выполнения дополнительной обработки перед отправкой формы на сервер. Например, можно проверить, заполнены ли все обязательные поля формы, прежде чем отправлять ее на сервер.

Вот пример обработки события submit с помощью JavaScript:

<form id="myForm">
  <label for="name">Имя:</label>
  <input type="text" id="name" name="name" required><br><br>
  <label for="email">Email:</label>
  <input type="email" id="email" name="email" required><br><br>
  <input type="submit" value="Отправить">
</form>

<script>
  const form = document.getElementById('myForm');
  form.addEventListener('submit', function(event) {
    event.preventDefault(); // отменяем стандартное поведение формы
    // выполнение дополнительной обработки
    console.log('Форма отправлена!');
  });
</script>

Как использовать метод event.preventDefault() для более эффективной обработки событий на веб-странице.

В этом примере мы добавляем обработчик события submit на элемент form с помощью метода addEventListener(). В функции обратного вызова мы отменяем стандартное поведение формы с помощью метода preventDefault(), чтобы форма не отправлялась на сервер. Затем мы выполняем дополнительную обработку, например, выводим сообщение в консоль.

Как использовать метод event.preventDefault() для более эффективной обработки событий на веб-странице

Метод event.preventDefault() используется для отмены стандартного поведения браузера для данного события. Когда пользователь выполняет определенные действия на веб-странице, браузер может выполнять стандартное действие для этого события. Например, при отправке формы браузер отправляет данные на сервер и перезагружает страницу.

Когда вы вызываете метод event.preventDefault(), вы предотвращаете выполнение стандартного действия браузера для данного события. Это дает вам возможность выполнить свою собственную логику обработки событий. Например, вы можете проверить данные, введенные пользователем в форму, и, если данные не прошли проверку, вы можете отобразить сообщение об ошибке, не отправляя данные на сервер.

В контексте обработки события submit, вызов метода event.preventDefault() позволяет отменить отправку формы на сервер и выполнить дополнительную обработку в JavaScript, прежде чем отправить данные на сервер. Кроме того, вы можете использовать этот метод для валидации формы и предотвращения отправки формы, если данные не прошли проверку.

Защита сайта от ошибок в коде

Интернет является основным средством связи, и все больше людей и бизнесов начинают использовать веб-сайты для продвижения своего бренда и предоставления услуг. Но многие владельцы сайтов сталкиваются с проблемой, когда их сайт перестает работать из-за устаревания кода авторизации. В этой статье мы рассмотрим, как защитить свой сайт от устаревания и ошибок в коде.

Что такое код авторизации и почему он может работать неправильно?

При авторизации на веб-сайте пользователь вводит свои учетные данные, такие как логин и пароль, который затем проверяется на сервере. Код авторизации — это PHP-скрипт, который отвечает за проверку этих данных и выдачу доступа в случае успеха. Однако, как все программное обеспечение, код авторизации может стать устаревшим и перестать работать из-за изменений в браузерах или серверных настройках.

Как защитить свой код авторизации от устаревания?

  1. Использовать последние версии языков программирования

Существуют многочисленные языки программирования, которые используются для написания кода авторизации, такие как PHP, Java, Python и другие. Чтобы избежать ошибок в коде авторизации, рекомендуется использовать последние версии языков, которые содержат исправления ошибок и улучшения производительности.

  1. Проверка кода авторизации на наличие ошибок

Существует множество инструментов, которые могут использоваться для проверки кода на наличие ошибок и потенциальные проблемы. Эти инструменты позволяют автоматизировать процесс обнаружения ошибок, ускоряют процесс работы программистов и помогают избежать серьезных ошибок в коде авторизации.

  1. Регулярные обновления кода авторизации

Регулярные обновления кода являются одним из самых важных способов защиты от устаревания кода авторизации. Включите периодическую проверку своего кода авторизации и обновляйте его регулярно, чтобы избежать уязвимостей и ошибок.

Вывод

Следуя этим рекомендациям, можно минимизировать риск ошибок в коде авторизации и устаревания. Защита своего сайта — это непрерывный процесс, и регулярное обслуживание веб-сайта является частью этого процесса. Не забывайте обновлять свой код авторизации, следить за тенденциями в технологиях и вносить изменения в ответ на изменения в Интернете.

При открытии сайтов в браузере иногда возникают ошибки – домен в адресной строке выделяется красным с зачеркиванием или ресурс вообще не открывается. Типовая причина скрывается в сбоях работы сертификата SSL. Исправить их может только администратор сайта, но перед обращением к нему стоит проверить собственный компьютер.

Что такое SSL

Текущие тенденции сайтостроения предполагают высокую безопасность соединения пользователя с веб-ресурсом. Это необходимо для защиты персональных данных, секретных номеров банковских карт и информации о проводимых сделках. Организуется безопасность подключением протокола шифрования Secure Sockets Layer (сокращенно SSL).

SSL

Особенности сертификата:

  1. Сертификат выпускается доверенным центром Certification Authority (CA).
  2. После выдачи он подключается к домену средствами провайдера хостинга.
  3. Срок его действия ограничен 1 годом, после чего требуется продление.

Работа сайта возможна и без SSL, но поисковые системы «не доверяют» таким ресурсам и помечают их в браузере как неблагонадежные. Поэтому лучше разобраться, как решить проблему с защитой и полноценно пользоваться протоколом HTTPS. Сертификат актуален на сайтах, где присутствует регистрация, предлагается покупка товаров или онлайн-оплата различных сервисов.

Сертификат ССЛ

При появлении любых сомнений в исправности защиты регистрироваться на сайте или вводить ранее выданные логин и пароль не рекомендуется. Тем более не стоит осуществлять онлайн-оплату с банковских карт или электронных кошельков, ведь не исключено, что проблема возникла из-за взлома ресурса злоумышленниками.

Комьюнити теперь в Телеграм

Подпишитесь и будьте в курсе последних IT-новостей

Подписаться

Причины появления ошибок SSL

Существует всего две причины, почему браузер отображает ошибку сертификата SSL со стороны сервера. Первая заключается в окончании срока активации, вторая – это покупка сертификата у поставщика без достаточных полномочий для выдачи «полноценной защиты». Например, виной может быть выбор самоподписанного сертификата, лишь эмулирующего работу реального протокола.

Остальные проблемы обычно скрываются на локальном компьютере:

  1. Произошел сброс системного времени.
  2. Неправильно настроена антивирусная программа.
  3. Сбоит браузер или установленное расширение.
  4. Срабатывает вредоносный скрипт.

Чтобы выяснить настоящую причину, пользователю браузера рекомендуется проверить все перечисленные факторы. При том же заражении компьютерными вирусами возможно проявление сразу нескольких симптомов – от изменения текущего времени и блокировки антивирусом до подключения перенаправления страниц в браузере и других неприятностей.

Изредка встречаются ситуации, когда проблема возникла со стороны администратора, если он ошибся при подключении нового сертификата или забыл продлить его действие. Обычно такие неполадки устраняются быстро, потому что после активации сайт проверяется и, в случае неработоспособности сертификата, проводится повторное подключение вплоть до получения положительного результата.

Время и дата

Сертификат SSL имеет четко обозначенный срок действия с датой активации и деактивации. Такой подход отчасти дает дополнительную защиту, потому что в случае технического сбоя в системных часах компьютера сайты перестают открываться. Сброс времени обычно происходит «назад», на дату изготовления материнской платы, на что и реагирует система.

Варианты исправления ситуации:

  1. Вручную внести корректную дату и время, после чего обновить страницу в браузере.
  2. Воспользоваться функцией синхронизации через интернет, встроенной в Windows.
  3. Заменить батарейку на памяти BIOS. При первом запуске ПК нужно внести корректные данные.

Каждый раз после изменения времени рекомендуется ручное обновление страницы или перезапуск браузера. Такой шаг активирует повторное соединение с сервером и позволяет зайти на сайт «с нуля», но уже с правильным временем, соответствующим сроку действия сертификата SSL (после активации и до ее завершения).

Настройки антивируса и брандмауэра

Программы для защиты компьютера от вирусов и хакерских атак иногда блокируют и «полезные» соединения, например, определенные домены или сразу весь протокол HTTPS, используемый при подключении сертификата SSL. Большинство антивирусов и брандмауэров проверяют его работу, и это становится причиной блокировки сайта как «злоумышленника, пытающего украсть данные».

Ошибка антивируса

Варианты исправления ситуации:

  1. Отключить режим «проверка протокола HTTPS». После этого зайти на сайт заново.
  2. Полностью выключить антивирусную программу. Перезагрузить ПК, открыть страницу.
  3. Сбросить настройки брандмауэра. Опять проводится перезапуск компьютера и веб-ресурса.

Функция временного отключения имеется в любой защитной программе, даже интегрированной в операционную систему Windows. Но это не гарантирует полную деактивацию приложения. В этом случае разобраться в ситуации поможет открытие сайта на другом компьютере или запуск безопасного режима (актуально для проводного подключения к интернету).

Браузер и операционная система

Наличие проблемы с браузером проще всего определить открытием сайта на другом устройстве или в другой программе. Иногда решение заключается в банальном обновлении версии приложения до актуальной. То же относится к операционной системе, если используется интегрированный браузер вроде Edge. Пакеты обновлений для того и выпускаются, чтобы устранять неполадки в ПО.

Браузер и операционная система

Варианты исправления ситуации:

  1. Полностью очистить историю браузера вместе с кэшем и другими данными.
  2. Временно отключить все ранее установленные и активные расширения.
  3. Переустановить программу после ее полной деинсталляции.

Остается еще один вариант – сбросить настройки браузера до состояния «по умолчанию». Способ аналогичен переустановке, но экономит время. Правда, он неэффективен, если проблема возникла из-за сбоя в одном из служебных файлов программы. Отдельное внимание стоит уделить расширению, выполняющему функции антивирусной защиты, ведь оно часто блокирует даже безопасное соединение.

Заражение компьютерными вирусами

Выдачей ошибки SSL браузер, вероятно, предупреждает о попытке его подмены, переадресации на сайт-клон или иной угрозе. В это случае рекомендуется провести полную проверку компьютера на наличие вирусов. Если присутствуют другие признаки заражения, стоит скачать парочку программ со свежими антивирусными базами (например, CureIt).

Заражение компьютерными вирусами

Варианты исправления ситуации:

  1. Временно отключить все программы из автозагрузки.
  2. Провести очистку диска от временных файлов.
  3. Перезагрузить компьютер после предыдущих шагов.

Выполняются перечисленные действия программами типа CCleaner. Они дают прямой доступ как к автозагрузке операционной системе, так и к списку расширений установленных браузеров. Также в таких программах обычно есть функция удаления ненужных системных файлов, в которых запросто может быть тело компьютерного вируса.

Если предложенные способы устранения ошибки SSL не помогли, остается ждать, пока проблему устранит администратор, или воспользоваться любым другим тематическим сайтом с аналогичным контентом.

Обеспечение информационной безопасности — это комплекс мер для обеспечения бесперебойной работы сайта, секретности, целостости и доступности пользователям хранящейся информации.

В статье рассмотрим:

  • основные принципы информационной безопасности;
  • угрозы для веб-сайтов;
  • рекомендации по повышению уровня защищенности сайта.

Также коснемся нашей веб-платформы Falcon Space в контексте вопросов информационной безопасности.

Принципы. Что учесть при обеспечении информационной безопасности сайта

Безопасность веб-сайтов определяется слабейшим звеном в защите

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

Поэтому фокус внимания всегда должен быть на наиболее слабом на данный момент звене.

Экономическое обоснование взлома

Зачем взламывают какую-либо систему? Для получения некой выгоды. Если взлом стоит дешевле этой выгоды, то игра стоит свеч. Задача защиты сделать взлом невыгодным.

Необходимо максимально повысить стоимость взлома. Это в первую очередь время на взлом и аппаратные/программные ресурсы взломщика.

Что защищать на сайте? КЦД

Что может плохого случиться с информацией на сайте?

  • Может возникнуть утечка данных — будет потеряна конфиденциальность информации.
  • Данные могут повредиться — информация потеряет целостность.
  • Информация может стать недоступна пользователю — потеряна доступность.

Все меры по безопасности так или иначе направлены на обеспечение конфиденциальности, целостности или доступности информации.

Человеческий фактор в информационной безопасности — самый тонкий момент

Человек слаб. У него есть множество соблазнов и уязвимых мест. Кого-то можно подкупить, кого-то запугать, а кто-то может по простоте дать доступ злоумышленнику по телефону.

Более опасен для системы внутренний человек (инсайдер), а не человек с улицы. У него может быть много причин для помощи злоумышленнику: обидели на работе, не дают повышения, «подработка», компромат на него и т.д. Имея доступ во внутреннюю часть систем человек становится точкой входа в систему для злоумышленника.

Угрозы для сайта и адекватные им меры

Не нужно стрелять из пушки по воробьям. Ваша защита должна соответствовать уровню угроз и модели злоумышленника. Если против вас работает АНБ, то ресурсов на защиту, вероятно, потребуется много (но, наверняка, в этом случае вам есть, что защищать).

Важно представлять себе примерный портрет злоумышленника и его возможности.

Это позволит вам понять, что может сделать злоумышленник, какие цели преследует (что он сможет с вас получить в случае успешного взлома) и какие варианты атаки он может реализовать.

Непрерывность состояния защищенности

Система безопасности должна работать непрерывно во времени. Странно будет выглядеть инкассаторы, которые при перевозке денег в 13:00 все разом поехали в кафе обедать, оставив деньги в машине.

Необходимо предусмотреть факторы, которые могут «оборвать» эту непрерывность состояния защищенности: выключили свет, уволился системный администратор, необходимо обновить какой-то ПО или ключ шифрования.

Подход риск менеджмента — риски информационной безопасности сайта

Информационная безопасность — это та же работа с рисками.

Риск — это вероятность и критичность для бизнеса.

Оцените свои риски информационной безопасности в плане вероятности возникновения негативного события и степени критичности. Далее продумайте меры, которые могут снизить вероятность возникновения риска и меры по снижению критичности.

Статья про риски веб-сайта

Угрозы информационной безопасности для сайта по КЦД и меры противодействия угрозам безопасности

Первый вопрос — откуда ноги растут? Кто злоумышленник, и зачем ему нужно взламывать наш сайт?

Что он получит? Какие возможности для взлома у него есть? Какой бюджет на взлом он может выделить?

Понимая эти вопросы, вы сможете более адекватно выработать ряд мер для защиты своего сайта.

Разберем основные меры защиты сайта по угрозам для конфиденциальности, целостности и доступности информации на сайте. Некоторые из мер относятся сразу к нескольким типам.

Меры по обеспечению конфиденциальности

Протокол SSL (HTTPS)

HTTPS соединение шифрует трафик между браузером и сервером. Это усложняет для злоумышленника получение данных в промежуточных узлах (например, извлечение пароля пользователя при входе).

Также SSL дает некую гарантию пользователю, что он взаимодействует именно с нужным сайтом (в браузере видна информация чей это сертификат).

Защита от разных атак на веб приложение (XSS, SQL инъекции).

Пользователь может ввести некий код через поля форм и этот код может негативно сказаться на работе системе.

Например, XSS атака подразумевает ввод JS кода, который сохранится в базе сайта (например, в виде тикета в службу поддержки), затем другой пользователь запросит эти данные из базы и этот вредоносный код JS выполнится от имени этого пользователя.

В Falcon Space мы производим защиту от XSS на уровне ролей. Только некоторые определенные в настройках роли могут сохранять HTML разметку в системе. Для всех других разметка сохраняется в кодированном виде (что не позволяет внедрить JS код).

Атака SQL Injection — вводится код SQL, который видоизменяет SQL выполняемый на сервере. Это очень опасная штука, т.к. позволяет вводить прямые команды в БД (например, удалять данные или считывать данные из таблиц). Защита от SQL инъекций — весь код sql выполнять в хранимых процедурах с параметрами без использования динамически генерируемых процедур.

В Falcon Space вся обработка построена на хранимых процедурах с параметрами.

Обновление ПО

Периодически разработчики находят уязвимости в ПО и выпускают обновления. Если не делать обновления, то есть риск, что этой уязвимостью воспользуются злоумышленники. Необходимо проводить профилактику сервера и ПО на нем.

Организационные меры и обучение сотрудников

Можно так построить бизнес-процесс, чтобы снизить вероятность утечки конфиденциальности и целостности. Пример — создание и и подпись платежных документов разными людьми. Снижается вероятность злоупотреблений со стороны кассира и контроллера.

Второе направление — это обучение. Люди должны хорошо знать свой участок и роль в процессах. Что они могут, а что делать нельзя. Знать, какие бывают ситуации и как они должны реагировать на них.

Меры по обеспечению целостности информации на сайте. Безопасность веб-сайтов

Транзакции

Если ряд операций должны быть выполнены как единое целое, то они должны быть заключены в единую транзакцию, которая либо полностью выполнится, либо откатится.

Это имеет важное значение для таких случаев как пополнение баланса. В рамках одной транзакции происходит изменение статусов платежей, изменение баланса пользователя и логирование этой операции. В случае возникновения проблем система будет всегда оставаться в целостном состоянии, т.к. не будет такой ситуации, что статус мы изменили, а пополнение баланса и логирования не произошло.

Платформа Falcon Space позволяет менять SQL скрипты, т.к. вы можете самостоятельно задать транзакции в системе под свои нужды.

Контроль целостности данных через скрипты

Данные в системе нужно периодически проверять. Код сайта может содержать ошибки, которые будут приводить к нарушению целостности. В этом случае необходимо создать ряд скриптов, которые будут проверять по бизнес-логике целостность данных в таблицах. Можно запускать подобные скрипты ежедневно для нахождения коллизий в данных, после чего выдавать отчет на почту.

В платформе Falcon Space есть подобный отчет для поиска медленных запросов. Ежедневно выполняется скрипт поиска проблемных запросов и отправляется краткий отчет на почту.

Правильная структура данных в базе данных

Если структура базы данных имеет проблемы, то при частичном обновлении данных может нарушиться целостность данных. Необходимо использовать нормализацию базы данных достаточного уровня, вводить ограничения, устанавливать внешние ключи и т.д.

Поиск и исправление ошибок в ПО (профилактика, обслуживание)

Глупо думать, что вы разработали 1 раз сайт, и он будет теперь работать бесперебойно без обслуживания, без администрирования хостинга и т.д.

Если сайт разрабатывался, а не просто был сделан на из готовых блоков, то в нем могут быть ошибки. И вылезти они могут не сразу, а в ходе эксплуатации.

Необходимо проводить профилактику приложения — смотреть логи, анализировать быстродействие, искать проблемные точки.

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

Меры по обеспечению доступности сайта

Защита от DOS

DOS атака — это организация множества запросов на сайт с целью его перегрузки. Происходит отказ в обслуживании — сервер просто начинает не справляться с возникшей нагрузкой.

Защита от DOS атаки лежит в первую очередь на хостере. Задайте вопросы по поводу защиты от DOS атак своему хостеру.

Также вы можете блокировать подозрительные IP адреса, т.к. ваш сервер просто не будет обрабатывать некоторые запросы. Тут главное не перестараться, т.к. таким образом, можно отсеять реальных пользователей вместе с ботами (программы, заходящие на сайт).

Нагрузочное тестирование

Проводите нагрузочные тесты, находите проблемные места в своем сайте про производительности. То, что хорошо работает на малом объеме, может очень тормозить на больших оборотах.

Резервный сервер

Если будет полный трабл с основным сервером, хорошо бы иметь возможность быстро восстановить работу приложения на резервном сервере. В идеале сделать работу несколько серверов в связке, чтобы при выходе из строя одного сервера, запросы шли на другой сервер.

Мониторинг доступности и оповещения

Если возникла остановка работы сайта, то необходимо узнать об этом как можно раньше, чтобы сразу принять все меры по восстановлению сайта. Для этого используются средства мониторинга, которые опрашивают сайт. В случае падения они сообщают через email или sms о проблеме. Пример бесплатного сервиса по мониторингу доступности сайта — https://uptimerobot.com/

Рекомендации по обеспечению информационной безопасности сайта

Пароли

Используйте сложные пароли, но которые реально запомнить. В этом случае пользователь не будет записывать их на бумажку. Пример: Kata007pulta* Пароль содержит спецсимволы, цифры, верхний регистр, более 8 символов. Такой пароль сложно подобрать, но легко запомнить пользователю.

Периодически меняйте важные пароли. Если храните пароли, то сделайте архив с паролем, и храните в нем Excel с паролями локально на своем ПК.

Минимальный доступ и убрать все ненужные элементы

У каждого пользователя должен быть минимальный уровень доступа, достаточный для его работы. Не нужно давать больше, чем ему нужно для выполнения служебных обязанностей. Атаке извне может быть подвергнут любой элемент вашей системы, и чем меньше возможностей у этого элемента, тем лучше.

Закрывайте доступ через неиспользуемые порты на сервере. Каждый порт — потенциальная точка входа для злоумышленника.

Обновления

Ставьте обновления своевременно. Заведите регламент работ по обновлению основного ПО — ПО сервера, CMS сайта, антивирус и т.д.

Инсайдеры

Инсайдер гораздо опаснее внешнего злоумышленника. У него уже есть доступ в системе. К нему есть некоторое доверие со стороны других людей в системе. Он может долгое время незаметно пакостить в системе. Создайте условия для максимальной удовлетворенности людей в системе, со всеми расставайтесь полюбовно, не оставляя долгов перед другими (особенно перед программистами и системными администраторами).

Чем сложнее решение, тем больше дыр и ошибок

Сложность программы идет рука об руку с ошибками. Чем больше кода, чем больше возможностей в нем, тем больше может быть багов в нем.

А баги — это риск-фактор для взлома системы. Уменьшайте сложность системы. По мере развития она и так будет усложняться по естественным причинам (много данных, обязательные хотелки пользователей и т.д.) — не стоит все усложнять на первых этапах своими же руками.

Используйте основы риск менеджмента

Проводите пересмотр рисков и мер по уменьшению критичности и вероятности возникновения риска.

Риски — это не что-то, что высечено на камне. Вы провели некие работы по снижению рисков, и необходимо пересмотреть их, сделать акцент на другие риски.

Не публикуйте в общий доступ лишней информации

Внешний злоумышленник собирает информацию сначала из открытых источников. По крупицам ищет уязвимости системы, изучает структуру системы и возможные точки входа в него.

Не публикуйте в общий доступ информацию, чувствительную ко взлому. Тем самым вы уменьшите вероятность взлома внешним злоумышленником.

Не ставьте ничего на телефон и ПК

На рабочих станциях (и тем более на серверах) не должно быть ненужного ПО. Любое дополнительное — потенциальный риск получить вирус или другое вредоносное ПО.

Уязвимости в ПО также могут быть точкой входа в систему.

Поэтому ставьте приложения только из проверенных источников и давайте этим приложениям минимум необходимых прав.

Для программистов — не доверять вводу юзера

Когда сайт обрабатывает запрос от браузера, нельзя доверять введенным данным от пользователя.

В платформе Falcon Space практически любая процедура принимает параметр @username, который находится внутри системы, а не получен от браузера. Именно на него мы ориентируемся при авторизации доступа к определенным ресурсам.

К примеру, пришел запрос GetOrder и передан параметр orderID — можем ли бы просто выдать заказ по orderID. Нет, т.к. юзер мог указать чужой orderID. Мы должны проверить сначала (по @username) имеет ли текущий пользователь доступ к этому объекту.

Бекапы, бекапы, бекапы!

Делайте бекапы базы данных и файлов сайта. Ежедневно должны создаваться бекапы. Их нужно копировать на удаленное хранилище (яндекс диск или dropbox). В случае, если сгорит сервер, ваши бекапы будут в сохранности.

Периодически проверяйте, что ваши бекапы делаются и они пригодны для использования (может случиться так, что бекапы делаются, но они повреждены и не могут быть использованы; либо делаются сильно усеченные и не позволяют полностью восстановить информацию).

Регламент обслуживания и контроля

Нет смысла описывать угрозы, считать риски без проведения работ по повышению уровня защищенности сайта. Реализовывать эти работы можно в виде регламентов обслуживания системы — т.е. это совокупность неких периодических действий, направленных на реализацию мер по обеспечению безопасности сайта.

Регламенты могут разниться и будут зависеть от специфики, масштаба вашего проекта, модели угроз и ваших возможностей/приоритетов.

Регламент обслуживания сервера

Выполняет системный администратор, проверяет критичные параметры сервера (память, место на диске, процессор), изучает системные логи, проводит обновление ПО, смотрит за бекапами сайта и базы данных.

Регламент профилактики по приложению

Выполнять данную процедуру может разработчик на поддержке. Необходимо изучать лог ошибок приложения, делать диагностику ошибок и заносить в баг трекер, что необходимо поправить.

Также имеет смысл проводить диагностику быстродействия, искать слабые запросы и оптимизировать их.

Плановое обновление паролей

Вы можете проводить процедуру изменения пароля для важных точек входа — соединение с базой данных, доступ к хостинг панелям, доступ к серверу, доступ к платежным аккаунтам и т.д.

Регламент пересмотра состава угроз и соответствующих мер (риск менеджмент)

Хотя бы раз полгода имеет смысл возвращаться к рискам информационной безопасности и обновлять меры, регламенты для более адекватной защиты от вновь выявленных угроз.

Заключение

Информационная безопасность веб-сайтов требует времени и средств. А видимой отдачи от нее нет. Что-то сделали, внедрили, а прямой выгоды от этого нет.

Но есть риски, которые могут в итоге принести колоссальный ущерб. Сделав небольшие усилия (20% по Парето), вы можете обеспечить значительную степень защищенности сайта и усложнить взлом для злоумышленника (т.е. защититься от 80% атак).

Начните с минимальных базовых моментов по обеспечению безопасности, итеративно добавляя новые элементы по мере необходимости.

Есть прекрасный закон Мерфи: «Если что-то может пойти не так, оно пойдёт не так».

Смысл его не в том, что вас обязательно взломают, но смысл в том, что кого-то когда-то непременно взломают. Будет ли это ваш сайт или чужой, завтра или через год, но это точно произойдет.

Источник:

Время на прочтение
7 мин

Количество просмотров 10K

В этой статье описаны самые распространённые проблемы безопасности WordPress и способы их решения, включая советы, как избежать взлома.

Безопасность WordPress является важной темой с тех пор, как эта система управления содержимым (Content Management System или сокращённо — CMS) была выпущена в 2003 году. Как и любое популярное программное обеспечение с длинной и богатой историей, CMS WordPress также может стать целью хакеров. Вредоносные действия могут включать межсайтовые скриптовые атаки, sql-инъекции, брутфорс атаки и ряд прочих способов получения несанкционированного доступа.

По мере того как хакеры набираются опыта в поиске новых способов использования уязвимостей, WordPress-разработчики и специалисты по безопасности совершенствуются в создании сайтов, которые сложнее взломать. Есть вещи, которые разработчики и владельцы сайтов на WordPress могут предпринять в первую очередь, если они не хотят, чтобы хакеры легко смогли обойти защиту их сайтов и получить доступ к данным. Ниже мы обсудим некоторые действия, которые может предпринять администратор WordPress, чтобы его сайт не могли взломать.

Содержание

  • Включите правильные разрешения на сервере для wp-config.php и .htaccess
  • Используйте актуальную и безопасную версию PHP
  • Отключите редактирование тем и плагинов на уровне панели администратора WordPress
  • Постоянно обновляйте свои плагины WordPress
  • Устанавливайте темы и плагины WordPress только из надёжных источников
  • Измените wp_prefix в базе данных во время установки WordPress
  • Не используйте стандартный логин «Admin». Используйте надёжные пароли
  • Отключите функцию регистрации пользователей, если она вам не нужна
  • Отключите комментарии, если они вам не нужны
  • Настройка robots.txt для блокирования несанкционированного доступа к файлам WordPress
  • Защитите себя от подбора учётных записей пользователей
  • Безопасный доступ к wp-admin / wp-login.php, двухфакторная аутентификация, ограниченное количество попыток входа в систему

  1. Двухфакторная аутентификация
  2. Ограничение количества попыток входа в систему

  • Регулярно делайте резервные копии
  • Скрывайте информацию об используемых вами версиях WordPress
  • Блокируйте выполнение PHP-скриптов в тех WP каталогах, где это не требуется
  • Отключите доступ к REST API вашего WordPress
  • Ограничьте или отключите доступ к XML-RPC
  • Убедитесь, что ваш сайт имеет SSL-сертификат
  • Заключение

Включите правильные разрешения на сервере для wp-config.php и .htaccess

Меняем:

644 -rw-r–r– /home/user/wp-config.php

644 -rw-r–r– /home/user/cgi-bin/.htaccess

на защищённые разрешения:

600 -rw——- /home/user/wp-config.php

600 -rw—— /home/user/cgi-bin/.htaccess

Используйте актуальную и безопасную версию PHP

По состоянию на 6 мая 2022 года самой последней и рекомендуемой версией PHP для WordPress является 8.0. Всегда можно проверить поддерживаемые и безопасные версии PHP, перейдя по этой ссылке. Как и в случае с любым другим программным обеспечением, поддержание всего ПО в актуальном состоянии является важным фактором безопасности WP.

Отключите редактирование тем и плагинов на уровне панели администратора WordPress

Если хакеры получат доступ к учётной записи администратора, то им будет очень легко внедрить вредоносный код в ваши темы и плагины WordPress. Мы будем использовать DISALLOW_FILE_EDIT, чтобы запретить редактирование файлов и повысить безопасность сайта.

Рассмотрим ниже, как это сделать:

  1. Для начала откроем файл wp-config.php с помощью любого текстового редактора.
  2. Внутри этого файла найдите строку /* That’s all, stop editing! Happy blogging. */ (На этом всё, можете прекратить редактирование! Удачи в ведении блога) и вставьте над ней следующий код: define( 'DISALLOW_FILE_EDIT,' true );
  3. Сохраните изменения и закройте файл.
  4. Если вы все сделали правильно, то ссылки «Plugins > Editor» и «Appearance > Editor» больше не должны быть видны в панели управления.

Постоянно обновляйте свои плагины WordPress

Также хорошей идеей будет следить за тематическими блогами и группами поклонников WP в социальных сетях. Многие пользователи WordPress делятся уведомлениями о критических ошибках в определённых плагинах WordPress. Если вы увидели ошибку, касающуюся плагина, который вы используете на своём сайте WordPress, немедленно выполните обновление. Кроме того, не забудьте удалить неиспользуемые плагины, чтобы избежать ненужных уязвимостей в вашей системе безопасности.

Устанавливайте темы и плагины WordPress только из надёжных источников

Самый безопасный способ — использовать официальную базу данных/репозиторий.

Темы WordPress можно найти здесь,

а доверенные плагины — здесь.

Файлы в этом хранилище были проверены и, очевидно, перед публикацией подвергались сканированию на наличие вредоносных программ.

Измените wp_prefix в базе данных во время установки WordPress

По умолчанию установка WordPress происходит с префиксом wp_, но в процессе стоит изменить его на собственный. Тем самым мы усложним вредоносным программам доступ к нашей базе данных и возможность извлечь данные.

Не используйте стандартный логин «Admin». Используйте надёжные пароли

Обязательно смените логин на собственный. Также не забывайте, что взломать сложные пароли с использованием нескольких различных символов намного труднее.

Отключите функцию регистрации пользователей, если она вам не нужна

Для этого:

  1. Перейдите на страницу Настройки (Settings), раздел Общие (General).
  2. Снимите флажок в поле «Любой может зарегистрироваться» (Anyone can register) в разделе Членство (Membership).
  3. Сохраните изменения.

Отключите комментарии, если они вам не нужны

Есть несколько способов сделать это. Вы можете использовать свой код, встроенные опции WordPress или плагин.

Чтобы отключить комментарии глобально с помощью самого WordPress, выполните следующие действия:

  1. Перейдите в Настройки (Settings), раздел Обсуждение (Discussion)

  2. Снимите галочку в поле «Разрешить людям оставлять комментарии к новым статьям» (Allow people to post comments on new articles).

  3. Сохраните изменения.

Как мы уже говорили ранее, вы также можете написать свой собственный код или использовать плагин для достижения того же эффекта, но в данном руководстве мы представили только самый быстрый вариант.

Настройка robots.txt для блокирования несанкционированного доступа к файлам WordPress

Данный файл, размещённый в главной папке домена, служит указателем для краулеров Google (агентов пользователей), показывающим, какие страницы они должны посещать и индексировать, а какие — нет. Вы можете использовать пример, представленный в сером поле здесь (не забыв изменить http://www.example.com/ на ваш собственный домен).

Вы также можете взглянуть на официальное руководство Google по robots.txt.

Защитите себя от подбора учётных записей пользователей

Подбор учётных записей пользователей — это форма вредоносной активности, которая позволяет хакерам использовать брутфорс атаки для получения доступа к учётным записям пользователей. Обратите внимание на обсуждение на StackExchange о том, как можно снизить риск подобных атак.

Безопасный доступ к wp-admin / wp-login.php, двухфакторная аутентификация, ограниченное количество попыток входа в систему

Эти меры могут быть реализованы различными способами. Наиболее популярным является ограничение доступа для определённых IP-адресов или отображение дополнительного окна с информацией об аутентификации. Мы также можем установить ограничение на количество попыток входа или вообще использовать двухфакторную аутентификацию.

Двухфакторная аутентификация

Чтобы подключить эту возможность, сначала загрузите плагин Google Authenticator.

После установки перейдите на страницу профиля и отметьте поле «Активен» (Active) в настройках Google Authenticator.

Теперь самое время установить приложение Google Authenticator для Android

или iOS.

После запуска аутентификатора должен появиться запрос на ввод кода или сканирование QR-кода. Вернитесь в настройки плагина и либо скопируйте код в приложение, либо выберите «Показать/скрыть QR-код» (Show/Hide QR code) и отсканируйте его телефоном.

Начнётся автоматическая настройка, вам необходимо принять все изменения и затем нажать «Обновить профиль» (Update profile) на подстранице «Ваш профиль» (Your profile). С этого момента каждая попытка входа в систему будет требовать двухфакторной аутентификации на странице входа в WordPress.

Ограничение количества попыток входа в систему

Как ранее уже упоминалось, ещё одним методом предотвращения атак брутфорсом является ограничение количества попыток входа пользователя в систему. Как это сделать?

Наверное, самое простое решение — это использовать один из многочисленных плагинов безопасности WordPress, например, WP Limit Login Attempts от Arshid. Вы можете скачать его здесь.

Регулярно делайте резервные копии

Даже самой лучшей защиты может быть недостаточно, чтобы спасти ваш сайт от хакеров WordPress. Поэтому убедитесь, что у вас всегда есть резервная копия на случай, если худшее всё-таки произойдёт. Ещё в качестве альтернативы вы можете воспользоваться следующим плагином безопасности.

Скрывайте информацию об используемых вами версиях WordPress

Информация о вашей версии WP может быть полезна хакерам, поэтому нет необходимости делиться ею свободно. Во-первых, заблокируйте доступ к файлу readme, добавив следующие строки кода в файл .htaccess:

<files readme.html>    
    order allow,deny
    deny from all    
    </files>

Во-вторых, вы можете использовать плагин безопасности для деактивации этой информации. Одним из таких плагинов является Sucuri, который после активации будет автоматически скрывать эту информацию, но для уверенности вы можете проверить это, зайдя в «Настройки» (Settings) > вкладка «Усиление» (Hardening).

Вы также можете удалить информацию о версии, добавив следующие строки кода либо в плагин для конкретного сайта, либо в плагин Code Snippets:

function wpbeginner_remove_version() {
return '';
}
add_filter('the_generator', 'wpbeginner_remove_version');

В-третьих, вы можете удалить информацию о версии WP в CSS/JS файлах, загружаемых на сайт. Вот ссылка на то, как это сделать, следуя рекомендациям пользователя tjhole.

Блокируйте выполнение PHP-скриптов в тех WP каталогах, где это не требуется

Запретите выполнение файлов PHP в не предназначенных для этого каталогах, чтобы повысить безопасность вашей платформы. Следуя решениям на сайте wpbeginner, откройте текстовый редактор и введите следующий код:

<Files *.php> deny from all </Files>

Сохраните этот текстовый файл как .htaccess и загрузите его в папку /wp-content/uploads/ на вашем сайте.

Отключите доступ к REST API вашего WordPress

Если вы не планируете использовать это API, то вы можете отключить к нему доступ с помощью следующего плагина.

Ограничьте или отключите доступ к XML-RPC

Если вы не используете XML-RPC, вы также можете отключить его с помощью:

function remove_xmlrpc_pingback_ping( $methods ) { unset($methods['pingback.ping']); unset($headers['X-Pingback']); return $methods; } add_filter('xmlrpc_enabled', '__return_false'); add_filter('xmlrpc_methods', 'remove_xmlrpc_pingback_ping' );

или с помощью .htaccess:

<Files xmlrpc.php> Order deny,allow Deny from all </Files>

Посмотрите эту ссылку, если вам нужна дополнительная информация.

Убедитесь, что ваш сайт имеет SSL-сертификат

Теоретически можно использовать плагин, но мы рекомендуем действовать вручную, как предложено на этом сайте (прим. переводчика: статья на англ.языке). Ознакомьтесь с разделом «How to properly enable SSL in WordPress / Как правильно включить SSL в WordPress» и следуйте инструкциям.

Заключение

Безопасность должна быть главным приоритетом любого предприятия, большого или малого. Мы надеемся, что эти рекомендации будут полезны в борьбе с хакерами и вредоносными программами. Обязательно следите за нашими статьями, чтобы получить другие советы и рекомендации.


НЛО прилетело и оставило здесь промокод для читателей нашего блога:

— 15% на все тарифы VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.

Возможно, вам также будет интересно:

  • Как зачеркнуть ошибку в трудовой
  • Как зачеркивать ошибку в тетради
  • Как заставить человека совершить ошибку
  • Как заставить человека признать ошибки
  • Как заставить человека понять свою ошибку

  • Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии