Рубрики
Uncategorized

Советы по безопасности для PHP-приложения

Пять способов повысить безопасность вашего PHP-сайта. С пометкой php, безопасность.

Я знаю, о чем многие из вас думают! PHP и безопасность? Зачем беспокоиться? Просто используйте другой язык программирования!

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

1. Ограничьте свой веб-корень до index.php и Файлы активов

В современном PHP вы укажете свой веб-сервер на каталог с index.php файл в нем, который будет единой точкой входа для всего сайта. Тот index.php загрузит пакеты Composer и загрузит ваш личный код для генерации ответа. Может возникнуть соблазн добавить другие файлы PHP в корневой каталог веб-сайта для тестирования. Однако вы не хотите, чтобы эти файлы были случайно зафиксированы и выявили проблему в вашем приложении. Кроме того, никакие файлы конфигурации не должны помещаться в веб-корень, поскольку веб-сервер может предоставлять их публично. Единственные статические файлы, которые должны находиться в корневом каталоге вашего веб-сайта, – это файлы JavaScript, CSS и изображений.

2. Отключить Отображение Ошибок

Вы можете настроить PHP на отображение ошибок, возникающих во время выполнения, с помощью директивы php.ini , называемой display_errors . Отображаемые ошибки могут привести к утечке важной информации о вашем приложении, включая секреты и SQL-запросы. Важно отключить их в процессе производства. В вашем файле php.ini установите display_errors и отображение_startup_errors . Чтобы по-прежнему фиксировать ошибки для отладки, включите log_errors и error_log =/var/log/php-error.log . Вы можете установить для журнала ошибок любой путь к файлу или даже установить его в службу журнала на уровне операционной системы.

3. Используйте password_hash для хранения Ваших паролей

Общеизвестно, что никогда не храните пароли в виде обычного текста. Однако многие фреймворки по-прежнему используют небезопасные алгоритмы хеширования для преобразования паролей (я смотрю на ваш WordPress). Вы можете увидеть некоторые устаревшие статьи, рекомендующие использовать md5 или хэш функция для хэширования паролей в PHP. Не используйте их! Лучший способ хэширования функции в PHP – использовать функцию password_hash . Вы можете использовать его так:

Хэш-функция пароля принимает обычный текстовый пароль и тип алгоритма ( PASSWORD_DEFAULT является безопасным выбором). Функция возвращает хэшированный пароль, который вы можете использовать в функции password_verify позже, когда пользователь войдет в систему. Проверка пароля возвращает значение true или false в зависимости от того, совпадает ли хэш с отправленным паролем. В случае, если вы видите статью, рекомендующую солить ваши пароли, не беспокойтесь о солях с помощью хэш пароля . Функция автоматически вводит пароль для вас.

4. Шифруйте Все Сообщения

В вашем PHP-приложении вам часто придется взаимодействовать с другими службами или механизмами хранения. Важно, чтобы вы всегда использовали зашифрованные подключения к службам. При использовании curl или soap всегда используйте https URL-адреса для API-интерфейсов, чтобы убедиться, что передаваемые данные зашифрованы. Кроме того, если вы используете FTP, убедитесь, что вы используете какую-либо форму защищенного FTP, будь то FTPS или SFTP. Если вы не используете какой-либо вид безопасной передачи, то вы можете допустить утечку пользовательских данных через сетевую активность. Использование TLS также проверяет, что URL-адрес является тем, за что он себя выдает, что защищает вас от отправки данных злоумышленнику.

5. Используйте шаблон фреймворка

Сам PHP часто используется в качестве языка шаблонов, встроенного в HTML-файлы. Однако PHP не избегает вывода по умолчанию. Экранирование предотвращает встраивание злоумышленником вредоносного JavaScript в управляемые пользователем формы или страницы. Рассмотрите возможность использования пользовательского шаблонного решения, такого как Веточка . Twig автоматически экранирует все выходные данные, используя свой синтаксис шаблона, который защищает вас от того, чтобы вы забыли экранировать пользовательские данные.

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

Оригинал: “https://dev.to/restoreddev/security-tips-for-a-php-application-4e9a”