Перейти к содержимому

Как использовать уязвимость формы на сайте

  • автор:

Как за 30 минут бесплатно проверить свой сайт на наличие уязвимостей

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

На сайте две ветки — 2.x и 3.x, но скачать и установить лучше ветку 3.x. Sqlmap корректно работают с каждой из этих версий, но в дальнейшем нам потребуется версия 3.x.

Загрузить последнюю версию sqlmap можно здесь. Распакуйте архив в любую удобную папку (чтобы было проще ее найти можно распаковать в папку С:\Users\)

Для запуска вначале нужно открыть командную строку. Нажмите Win+R, в появившемся окне введите cmd и нажмите enter. Пример запуска:

С:\Users\Admin\sqlmap>python ./sqlmap.py -u http://161.35.92.161/page.php?id=2

Установка на Mac OS X

Для начала установим Python. Для этого откройте Tерминал и запустите следующую команду.

brew install python3

Теперь установим sqlmap.

brew install sqlmap

Запуск sqlmap для Mac OS X.

sqlmap -u http://161.35.92.161/page.php?id=2 —dbs -o -random-agent
Начинаем проверку

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

python sqlmap.py -u http://161.35.92.161/page.php?id=2 —dbs -o -random-agent

Через некоторое время скрипт может попросить нас уточнить некоторые данные. В данном случае выбираю «нет», чтобы скрипт прогнал все тесты.

[01:14:57] [INFO] fetched random HTTP User-Agent header value ‘Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0; YComp 5.0.2.6; MSIECrawler)’ from file ‘C:\Users\Acer\sqlmap\data\txt\user-agents.txt’ [01:15:04] [INFO] testing connection to the target URL [01:15:04] [INFO] checking if the target is protected by some kind of WAF/IPS [01:15:05] [INFO] testing NULL connection to the target URL [01:15:05] [INFO] NULL connection is supported with GET method (‘Range’) [01:15:05] [INFO] testing if the target URL content is stable [01:15:05] [INFO] target URL content is stable [01:15:05] [INFO] testing if GET parameter ‘id’ is dynamic [01:15:05] [INFO] GET parameter ‘id’ appears to be dynamic [01:15:06] [INFO] heuristic (basic) test shows that GET parameter ‘id’ might be injectable [01:15:06] [INFO] testing for SQL injection on GET parameter ‘id’ [01:15:06] [INFO] testing ‘AND boolean-based blind — WHERE or HAVING clause’ [01:15:06] [INFO] GET parameter ‘id’ appears to be ‘AND boolean-based blind — WHERE or HAVING clause’ injectable [01:15:07] [INFO] heuristic (extended) test shows that the back-end DBMS could be ‘CrateDB’ it looks like the back-end DBMS is ‘CrateDB’. Do you want to skip test payloads specific for other DBMSes? [Y/n] n

Скрипт выводит отчет:

[01:15:29] [INFO] testing ‘MySQL >= 5.0 AND error-based — WHERE, HAVING, ORDER BY or GROUP BY clause (FLOOR)’ [01:15:29] [INFO] testing ‘PostgreSQL AND error-based — WHERE or HAVING clause’ [01:15:29] [INFO] testing ‘Microsoft SQL Server/Sybase AND error-based — WHERE or HAVING clause (IN)’ [01:15:30] [INFO] testing ‘Oracle AND error-based — WHERE or HAVING clause (XMLType)’ [01:15:30] [INFO] testing ‘MySQL >= 5.0 error-based — Parameter replace (FLOOR)’ [01:15:30] [INFO] testing ‘Generic inline queries’ [01:15:30] [INFO] testing ‘PostgreSQL > 8.1 stacked queries (comment)’ [01:15:30] [WARNING] time-based comparison requires larger statistical model, please wait. (done) [01:15:32] [INFO] testing ‘Microsoft SQL Server/Sybase stacked queries (comment)’ [01:15:32] [INFO] testing ‘Oracle stacked queries (DBMS_PIPE.RECEIVE_MESSAGE — comment)’ [01:15:32] [INFO] testing ‘MySQL >= 5.0.12 AND time-based blind (query SLEEP)’ [01:15:43] [INFO] GET parameter ‘id’ appears to be ‘MySQL >= 5.0.12 AND time-based blind (query SLEEP)’ injectable [01:15:43] [INFO] testing ‘Generic UNION query (NULL) — 1 to 20 columns’ [01:15:43] [INFO] automatically extending ranges for UNION query injection technique tests as there is at least one other (potential) technique found [01:15:45] [INFO] target URL appears to be UNION injectable with 4 columns [01:15:46] [INFO] GET parameter ‘id’ is ‘Generic UNION query (NULL) — 1 to 20 columns’ injectable GET parameter ‘id’ is vulnerable. Do you want to keep testing the others (if any)? [y/N] y

После продолжения анализа нас в первую очередь интересует строчка в конце: GET parameter ‘id’ is vulnerable. Do you want to keep testing the others (if any)? [y/N].

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

sqlmap identified the following injection point(s) with a total of 74 HTTP(s) requests: — Parameter: id (GET) Type: boolean-based blind Title: AND boolean-based blind — WHERE or HAVING clause Payload: AND 9795=9795 Type: time-based blind Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP) Payload: AND (SELECT 7989 FROM (SELECT(SLEEP(5)))geJr) Type: UNION query Title: Generic UNION query (NULL) — 4 columns Payload: UNION ALL SELECT NULL,CONCAT(0x716a6a6b71,0x736654714b69505a4f6f64434776566d7a43455179446561434f7a46434241555449574d6759575a,0x7162627171),NULL,NULL— — — [INFO] the back-end DBMS is MySQL web server operating system: Linux Ubuntu web application technology: Apache 2.4.41 back-end DBMS: MySQL >= 5.0.12 [INFO] fetching database names available databases [2]: [*] information_schema [*] vc_test [INFO] fetched data logged to text files under ‘C:\Users\Admin\AppData\Local\sqlmap\output\161.35.92.161’

В итоге скрипт не только определил, что параметр id является уязвимым, но и версию СУБД, а также получил название используемой базы данных на сервере — vc_test, в которой содержится контент сайта. Эту информацию можно найти в конце сгенерированного отчета.

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

Кроме того, sqlmap позволяет задавать http заголовки и параметры Cookies, что довольно удобно для тестирования, особенно когда для получения результата запроса требуется авторизации.

Пример тестирования запроса POST. Параметры, которые передаются в теле запроса записываются в опцию скрипта —data. Необходимые параметры для POST запроса можно подсмотреть в консоли браузера (Ctrl + Shift + I в Windows, затем перейти в вкладку Network, совершить нужное действие, а затем изучить каким образом формируется запрос)

sqlmap.py -u http://localhost/login —data=»username=alex&password=pass» —dbs -o -random-agent

После авторизации обычно необходимо передать нужные Сookie. В sqlmap за это отвечает опция —cookie. Нужные значения cookies можно получить в инструментах разработчика вашего браузера. (в Windows ctrl+shift+i, затем найдите вкладку Network, а в ней щелкните на запрос с именем домена сайта. В окне справа пролистайте пока не увидите параметр cookie)

Пример команды sqlmap c опцией —cookie.

sqlmap.py -u http://localhost/create —data=»name=alex&message=hacked» —cookie=»security_level=low; PHPSESSID=05aa4349068a1kkaje4kcqnr9o6″ —dbs -o -random-agent

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

sqlmap.py -u «http://localhost/profile/?username=alex&page=2» -p username

Можно задавать http заголовки через опцию —headers. Это крайне полезно для тестирования ваших API.

Также если get параметр передается не как get параметр, а как URI, то в этом случае нужно явно указать с помощью * , что данная часть URI является параметром. Пример:

sqlmap.py -u «http://localhost/api/v2/news/2*» —headers=»Authorization: Bearer » —dbs -o -random-agent

Таким образом можно довольно тщательно протестировать ваше веб-приложение на наличие SQL инъекций. Также крайне полезно использовать sqlmap для автоматических тестов и запускать их после каждого изменения кода вашего приложения и не допускать код в ветку master, если он содержит уязвимость.

Для защиты от SQL инъекций нужно тщательно фильтровать параметры и HTTP заголовки, а также использовать подготовленные запросы.

5. Проверка на XSS уязвимости.

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

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

  • Внедрять свои скрипты в веб-страницу
  • Отправлять на свой сервер пользовательские данные — банковские карты, идентификаторы сессий, пароли и тд.
  • Совершать действия от имени пользователя — рассылать спам, совершать денежные переводы

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

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

В данном случае для тестирования мы воспользуемся утилитой XSStrike

ХSStrike — это довольно продвинутый сканер для поиска XSS уязвимостей c открытым исходным кодом. Он написано на Python3 и довольно прост в начальной настройке и использования.

Для установки необходимо скачать архив по ссылке и распаковать в удобную вам папку. После этого необходимо открыть консоль (ранее я уже показывал как это сделать в Mac и Windows) и перейти в распакованную папку. Затем нужно выполнить команды в консоле:

pip3 install pygame

Установим необходимые для корректной работы библиотеки:

pip3 install -r requirements.txt

Теперь мы готовы к тестированию. Пример простого запуска, вместо моего url укажите адрес страницы, которую хотите протестировать:

python xsstrike.py -u «http://161.35.92.161/index.php?page=2» —blind

Очень быстро скрипт обнаруживает, что параметр page является уязвимым ( строчка Reflections found ) и через него можно передать js код, который будет исполнен на странице. Пример такого кода приводится в строчке Payload. Такой тип XSS уязвимостей называется reflected XSS.

[~] Checking for DOM vulnerabilities [+] WAF Status: Offline [!] Testing parameter: page [!] Reflections found: 1 [~] Analysing reflections [~] Generating payloads [!] Payloads generated: 3072 ———————————————————— [+] Payload:

Кроме того, можно проверять и формы. Отправим на проверку форму, которая отправляет сообщение в наш сервис. Чтобы передать список POST параметров используем опцию —data.

python xsstrike.py -u «http://161.35.92.161/index.php» —data «name=&message=» —blind

Результат: параметр name уязвим.

[~] Checking for DOM vulnerabilities [+] WAF Status: Offline [!] Testing parameter: name [!] Reflections found: 3 [~] Analysing reflections [~] Generating payloads [!] Payloads generated: 4608 ———————————————————— [+] Payload: v3dm0s [!] Efficiency: 100 [!] Confidence: 10 [?] Would you like to continue scanning? [y/N]

Как выглядит ответ, когда скрипт не находит уязвимых параметров:

[~] Checking for DOM vulnerabilities [+] WAF Status: Offline [!] Testing parameter: name [-] No reflection found [!] Testing parameter: message [-] No reflection found

Кроме того, в XSStrike поддерживает возможность передавать http заголовки, в том числе и cookies и проверять страницы для открытия которых нужна авторизация. Для этого используется опция —headers

python xsstrike.py -u «http://161.35.92.161/index.php» —data «name=&message=» —headers «Authorization: Bearer Cookie: zmname\=none» —blind

Также можно запустить обход по всему сайту. Нужно указать стартовую страницу и сканер начнет обход всех найденных страниц. Запись -l 100 отвечает за количество страниц обхода.

python xsstrike.py -u «http://161.35.92.161» —blind —crawl -l 100

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

Также полезная функция — обход url страниц, которые указаны в файле с помощью опции —seeds. Можно также использовать вместе с опцией —headers.

python xsstrike.py -u «http://example.com» -l 3 —seeds urls.txt

Таким образом можно достаточно тщательно проверить свое веб-приложение на XSS уязвимости. Также хорошим ходом будет написать простой bash скрипт для объединения всех проверок XSS в один скрипт, специально заточенный под ваш проект.

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

Для борьбы с XSS уязвимости нужно также тщательно фильтровать данные, которые показываются пользователю.

Заключение

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

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

Если есть вопросы, то смело пишите их в комментариях или мне в телеграм t.me/alex.belousov92

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

Уязвимости сайтов

Уязвимости сайтов — это возможности их взлома из-за наличия ошибок в программном коде, неправильных настроек системы управления контентом (CMS) и операционной системы веб-сервера. Ежегодно компании тратят огромные деньги на поиск и устранение уязвимостей в своих веб-проектах, и неспроста: код сайтов почти всегда содержит изъяны. На данный момент классифицировано огромное количество ошибок безопасности в программном обеспечении для веб-ресурсов, не считая обнаруженных уязвимостей «нулевого дня».

Классификация уязвимостей сайтов

Можно выделить следующие основные виды уязвимостей сайтов:

  1. XSS (cross-site scripting, межсайтовое исполнение сценариев). Данная уязвимость позволяет запускать на сайте произвольный JavaScript-код с помощью форм ввода. Также XSS может выполняться с помощью редактирования GET-переменных в ссылках.
  2. SQL-инъекция. С помощью SQL-запросов хакер может сделать дамп базы данных или внести в нее изменения. Сами запросы обычно передаются с помощью форм ввода на сайте.
  3. Возможность внедрения или изменения HTML-кода сайта (опять же за счет полей и форм для ввода данных).
  4. Предсказуемое расположение каталогов и служебных файлов (например, панель управления администратора находится по адресу /admin), а также стандартные префиксы таблиц в базе данных.
  5. Выполнение команд ОС. Иногда бывает так, что с помощью сайта возможно исполнить команды на сервере, где он работает. Посредством этой уязвимости злоумышленник способен, например, запустить на сервере троянскую программу.
  6. Типовые имена учетных записей (admin, root) и / или слабые пароли доступа к панели администрирования. В этом случае может оказаться эффективным перебор паролей (брутфорс).
  7. Отсутствие таймаута сессии (Insufficient Session Expiration). Если лимит времени, по достижении которого неактивный пользователь считается вышедшим из системы, достаточно велик, то взломщик получает шанс использовать для входа старый идентификатор сеанса связи.
  8. Индексирование директорий (Directory Indexing). Если в каталоге на сервере нет страницы, выводимой по умолчанию (index.html / home.html / default.htm и т.п.), то при попытке обратиться к этой директории сервер выведет список подкаталогов, по которому можно свободно перемещаться с помощью обычного браузера.
  9. Небезопасное восстановление паролей (Weak Password Recovery Validation). Данная ситуация может возникнуть в том случае, если сервер дает возможность восстановить или изменить пароли других пользователей.
  10. Переполнение буфера (Buffer Overflow) позволяет с помощью перезаписи данных в памяти системы поменять путь исполнения программы. Данная уязвимость является одной из наиболее распространенных.
  11. Предсказуемое значение идентификатора сессии (Credential/Session Prediction). В этом случае у киберпреступника есть возможность перехватить сеанс другого посетителя сайта. Уникальный номер сессии предсказывается или угадывается.
  12. Подмена содержимого (Content Spoofing). Отдаваемые посетителю данные заменяются на поддельные, но пользователь по-прежнему думает, что отображаемые страницы созданы веб-сервером.
  13. Недостаточная аутентификация (Insufficient Authentication). За счет этой уязвимости злоумышленник может получить доступ к функциям сервера и важной информации, не имея соответствующих прав доступа.
  14. Отсутствие ограничений на количество попыток входа в систему. В такой ситуации робот злоумышленника может быстро и эффективно перебирать пароли к учетным записям.

Какие сайты наиболее уязвимы?

Согласно исследованию Positive Technologies, наиболее уязвимы сайты, написанные на PHP с использованием собственного ядра. В наибольшей степени защищены веб-ресурсы на Java/ASP.NET с использованием коммерческих CMS. В данном случае лучше заплатить больше, но быть уверенным в безопасности продукта. Цель киберпреступника — контроль над сайтом, а множественные уязвимости помогут в достижении его цели.

Уязвимости сайтов

Как обнаружить и устранить уязвимости сайтов?

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

Уязвимости сайтов: 10 распространенных проблем

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

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

Что такое уязвимость сайта

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

Уязвимые места в безопасности обычно ищут при помощи специальных программных сканеров (Vulnerability scanners).

10 возможных уязвимостей сайтов

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

1. Инъекции/Injection

Если не проверять входные данные и не подготовить операторы должным образом, вместе с запросом на ваш сервер могут проникнуть ненадежные данные, которые приведут к выполнению вредоносного кода вашим интерпретатором. Это называется инъекцией. Злоумышленник может ввести код (SQL, XXE, OS, LDAP и других типов) в форму на сайте, поэтому важно настроить фильтрацию входящей информации.

2. Проблемы аутентификации и проверки сессий

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

3. XSS

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

4. Проблемы контроля доступа

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

Уязвимости сайтов.

Изображение от storyset на Freepik.

5. Неверная конфигурация

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

6. Незащищенные конфиденциальные данные

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

7. Недостаточная защита от атак

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

8. Уязвимости CSRF

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

9. Использование компонентов с уязвимостями

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

10. Незащищенные API

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

Выводы

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

Похожие статьи

Что такое система хранения данных и какие проблемы она решает 09 ноября 2022

Система хранения данных (СХД) — это совокупность аппаратных средств и программного обеспечения, предназначенная для сохранения и обработки цифровой информации, а также ее резервного копирования.

OpenVZ или KVM: какую виртуализацию выбрать 14 ноября 2022

Технология виртуализации (virtualization technology, VT) является важным критерием выбора VPS/VDS. От нее зависят функциональность серверов, запущенных внутри хоста, и возможности управления ими.

Что такое брандмауэр 21 ноября 2022

Брандмауэр — это программа или программно-аппаратное решение, которые фильтруют входящий и исходящий сетевой трафик.

© Надежный хостинг «Евробайт™»
2010-2024
Эл. почта: support@eurobyte.ru

Откуда берутся вирусы на сайтах

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

В данной статье мы рассмотрим наиболее распространённые уязвимости на сайтах.

1. Самая распространённая уязвимость на сайтах — это плагины/модули/темы Вашего сайта, так как через них злоумышленник может получить доступ к Вашим данным или клиентов, которые были зарегистрированы на сайте. Для того чтобы снизить риск заражения Вашего сайта, необходимо обновлять используемые плагины/модули/темы на сайте.

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

3. Также одной из уязвимостей на сайтах может быть, использование незащищённого соединения HTTP, для работы сайта по защищённому соединению HTTPS необходимо установить SSL-сертификат.

4. Одной из уязвимостей сайта можно считать стандартное расположение каталогов и системных файлов Вашего сайта, например для входа в админ-панель WordPress необходимо использовать ссылку https://Ваш_сайт/wp-admin/ по этой ссылке может зайти любой человек, у которого есть доступ к Вашей админ-панели, поэтому необходимо закрыть доступ к админ-панели или сменить ссылку на неё, чтобы обезопасить свой сайт от возможного взлома.

5. Используйте сложные пароли содержащие цифры, прописные и строчные буквы, специальные символы (%, *, ). @, #, $, ~ ), это повысит надёжность от несанкционированного доступа к Вашему сайту при переборе паролей в админ-панель сайта.

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

7. Устанавливайте корректные права на каталоги и файлы сайта. У нас есть права для пользователя, группы и других пользователей.

Права доступа к папкам и файлам сайта

На картинке отмечены стандартные данные для доступа к файлам и каталогам, а именно:

  • У файлов 644 — это разрешение пользователю права на чтение и запись, для группы пользователя чтение, для других пользователей только чтение.
  • У каталогов 755 — это разрешение для пользователя выполнять чтение, запись, исполнение, для группы пользователя чтение и исполнение, для других пользователей чтение и исполнение.

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

8. Используйте для входа доверенные устройства и сеть при подключение к административной панели сайта, и не используйте сторонние сетевые подключения.

9. Не храните пароли в открытом виде на своём компьютере, например в Блокноте или Word-файле, используйте для этого программы для хранения и шифрования паролей, например KeePass.

10. Если на сайте есть формы обратной связи, где можно вложить файл на сайт, то необходимо сделать проверку на тип файла.
Например, на сайте с галереей Ваши посетители загружают фото в формате .jpeg и .png , но при этом нет проверки на тип файлов, в данном случае злоумышленник может загрузить php-скрипт, которых может нарушить работу сайта или он сможет получить доступ к данным.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *