PHP: безопасность. Отображение ошибок.
Всем привет! Сегодня мы поговорим про отображение ошибок в PHP и чем это может быть опасно.
Обычно, когда вы разрабатываете проект, то у вас включено отображение всех ошибок. Это существенно помогает в разработке. Однако, если вы выкладываете свой сайт в production, это может привести к большой угрозе взлома. Давайте рассмотрим очень простой, но наглядный пример.
<?php
$db = new PDO('mysql:host=127.0.0.1;dbname=base', 'root', '12345');
?>
Здесь мы просто подключаемся к базе данных base, используя наш логин и пароль. Если сервер указан верно, то все будет нормально, в ином же случае вы увидите ошибку. Данная ошибка может очень сильно помочь злоумышленникам взломать вас, ведь она содержит очень важную информацию: структуру вашего проекта, ваш логин и пароль, название базы и сервера.
Чтобы избежать таких проблем, всегда нужно отключать отображение каких-либо ошибок на сайте, если вы выкладываете его в открытый доступ. Сделать это можно двумя способами.
Первый способ - отключить отображение ошибок в файле php.ini
display_errors=off
Но такая возможность есть не всегда. Тогда можно воспользоваться вторым способом.
Второй способ - отключить отображение ошибок с помощью PHP. Просто напишите в начале вашего главного файла проекта(обычно index.php) следующее:
ini_set('display_errors', 'off');
error_reporting(0);
Итак, на этом все. Это очень небольшая, но чрезвычайно важная тема, ведь многие, особенно начинающие веб-разработчики, допускают эту ошибку, что впоследствии приводит к неблагоприятным последствиям.
Спасибо за внимание!
-
- Михаил Русаков
Комментарии (1):
Спасибо, полезная информация. Но столкнулся с такой проблемой. Файл php.ini может блокировать вывод ошибок. Решение. Проверить параметры error_reporting = E_ALL, display_errors = On, display_startup_errors = On в php.ini. Если вы не знаете где файл php.ini? Используйте php функцию phpinfo(). Откроется таблица. Там есть путь до php.ini. Найдите параметр “Loaded Configuration File” и “Configuration File (php.ini) Path”. Вот здесь я нашел об этом. http://profi.spage.me/php/show-php-file-errors-enable-php-error-display
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.