12 лучших рекомендаций по обеспечению безопасности для PHP
Опубликовано: 2021-08-14Безопасность - важная тема для всех разработчиков программного обеспечения, но разработчики PHP сталкиваются с некоторыми уникальными проблемами. В этом сообщении блога мы рассмотрим 12 лучших рекомендаций по обеспечению безопасности для PHP, а также то, как вы можете реализовать их в своем коде, чтобы обеспечить безопасность и надежность вашего веб-сайта. Вы всегда можете обратиться к профессионалам из WebCitz для решения ваших задач по программированию на PHP!
1. Регулярно обновляйте версию PHP
Убедитесь, что ваша версия PHP актуальна, чтобы минимизировать риск уязвимостей системы безопасности. Исправления часто исправляют известные ошибки, поэтому важно, чтобы вы использовали их в своих интересах по мере их появления.
Хакеры уже начали использовать последние недостатки PHP. Те из вас, у кого есть более старые версии, будут уязвимы для их вторжений, если вы не измените настройки!
Вы можете попробовать предварительную версию, но советники по безопасности предупреждают компании, чтобы они избегали предварительных версий нового программного обеспечения, поскольку в них все еще могут быть неизвестные недостатки безопасности.

2. Не раскрывайте конфиденциальные данные в Интернете через незашифрованное соединение.
Многие веб-сайты по-прежнему уязвимы, потому что их разработчики совершили ошибку, предоставив учетные данные базы данных или файловой системы в общедоступном Интернете, используя незащищенный протокол FTP, учетную запись электронной почты без защиты SSL и т. Д.
Защитите эти файлы и папки, зашифруя их перед передачей по любому сетевому соединению, не зашифрованному с помощью TLS / SSL.

3. Защита от атак с использованием SQL-инъекций.
Уязвимость внедрения SQL (язык структурированных запросов) возникает, когда пользовательский ввод используется в запросе без надлежащей проверки его типа и намерения, что ставит под угрозу надежность результатов, показываемых следующими запросами, сгруппированными из отправленных строк.
Это звучит сложно, но все, что вам нужно знать, это то, что эта атака может раскрыть ваши бизнес-данные и конфиденциальную информацию.
Наилучший способ защиты от атак с использованием SQL-инъекций - это защита ввода, не позволяющая хакерам внедрять свой собственный код на веб-сайт через поле формы или окно взлома. Вы хотите очистить любые отправленные пользователем значения перед их вставкой в SQL-запрос, например: $ input = filter_var ($ _ POST ['field'], FILTER_SANITIZE_STRING); if (! empty ($ input)) {echo «Вы ввели:«. $ input. »
«; } else {echo 'Пожалуйста, введите что-нибудь';}. Обратите внимание, как мы использовали empty (), чтобы убедиться, что нет пустых полей.

4. Убедитесь, что вы надежно храните конфиденциальные данные.
Когда дело доходит до безопасного хранения паролей и информации о кредитных картах, здесь нет права на ошибку - ставки слишком высоки, если хакер получит доступ к этим файлам или базам данных, содержащим эту информацию!
Чтобы свести к минимуму риск возникновения такой атаки, всегда используйте надежный алгоритм шифрования при хранении конфиденциальных данных в вашей базе данных - предпочтительно с 128-битным шифрованием AES, например SHA512_RSA.
Также доступно программное обеспечение, упрощающее управление зашифрованными базами данных: MySQL Encryption Utilities (MEU). Важно отметить, что MEU шифрует только текстовые поля в базах данных MySQL, но этого достаточно для большинства случаев использования.

5. Не используйте пароли повторно
Повторное использование одного и того же пароля снова и снова - верный способ взломать вашу учетную запись раньше, чем позже! Если вы используете встроенные функции PHP для генерации случайных строк текста (например, rand ()), помните, что они недолговечны, поэтому меняйте их хотя бы каждые несколько месяцев.
Вы хотите, чтобы он содержал буквы верхнего и нижнего регистра, числа и символы. Также не повредит наличие более сложных правил, связанных с тем, когда также должна генерироваться новая строка - например, один раз в неделю или после трех попыток входа в систему с неправильным паролем. Доступно даже программное обеспечение, которое может делать за вас вычисления!

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

Этой уязвимостью можно воспользоваться с помощью проверки формы JavaScript на веб-страницах, чтобы любой ввод, введенный посетителями, выполнялся автоматически через обновление страницы, отображая гиперссылки с активным содержимым, например изображения внутри них, и добавляя параметры, предоставленные пользователем, к динамическим URL-адресам, например '? account = 123 'и т. д.

7. Защита от атак CSRF.
CSRF (подделка межсайтовых запросов) - это тип атаки, при котором неавторизованные команды передаются с сайта злоумышленника в ваше веб-приложение. Это, помимо прочего, может привести к захвату сеанса или краже файлов cookie.
На первый взгляд это может показаться сложным, но все, что вам нужно сделать, это предоставить дополнительный токен, который требует проверки для любого действия, при котором может быть раскрыта конфиденциальная информация, например, входа в учетную запись другого пользователя - это гарантирует, что не будет только один единая точка уязвимости и убедитесь, что на вашем веб-сайте не используются автоматизированные учетные записи.

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

9. Не оставляйте включенным режим отладки в производственной среде.
Отладочный код часто имеет возможности для включения таких вещей, как удаленное редактирование файлов (с использованием fopen ()) и создание необработанных SQL-запросов с помощью mysql_query ().
Это замечательно, если вы хотите генерировать полную трассировку стека при возникновении ошибок, но это создает серьезные риски безопасности на вашем рабочем веб-сайте. Отключение этих функций и удаление любых экземпляров, в которых они используются, сэкономит вам много времени, когда дело доходит до исправления ошибок!

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

11. Не используйте «admin» в качестве имени учетной записи.
Если вы хотите защитить себя от доступа посторонних к вашему сайту путем угадывания паролей, попробуйте использовать другое имя пользователя, например «admin» или что-то еще, что не так очевидно.
Если кто-то все же попытается получить доступ к вашей учетной записи, ему будет намного сложнее угадать пароль, а также хакерам будет труднее использовать методы грубой силы, если вы используете необычное имя пользователя!

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

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