904 MGraphics.ru - Мануал по php - Безопасность при программировании на PHP+MySQL
Уроки photoshopa


Мануал по php

Безопасность при программировании на PHP+MySQL

Условия перепечатки материалов

Рейтинг статьи: 0.000.000.000.000.00
Проголосовало 0 человек.
Оцените статью:

Я наконец то купил новый роутер себе, теперь могу в нормальном режиме писать статьи. А то раньше интернет лагал жутко, даже не приятно работать было. И кстати сайт 27sysday.ru помог с вопросом wifi роутер как выбрать и как правильно использовать, очень интересная инфа.
Очень часто при программировании на связке PHP+MySQL допускают слишком большие вольности в отношении безопасности. Это обусловлено тем фактом, что код, написанный на языке PHP сам по себе является закрытым, то есть его нельзя посмотреть так, как можно посмотреть HTML-код страницы.

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

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

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

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

Вторая серьёзная ошибка, которую могут допускать и более опытные программисты – это отсутствие экранирования строковых данных в SQL-запросе. Эта ошибка открывает для настоящего хакера практически неограниченные возможности. Пользуясь данным фактом (в народе называемым «SQL-инъекция») злоумышленник может фактически получить полный доступ к системе. И уж конечно, за сохранность сайта никто уже ручаться не будет.

Хотя PHP и является языком программирования с нестрогой типизацией, тем не менее, можно порекомендовать (там, где это возможно) приводить данные к одному виду.
Ну например, в некоторой функции вы желали бы увидеть в качестве возврата именно числовое представление, а не строковое. Сделайте принудительное преобразование типа в integer. Этим вы значительно сузите круг проблем, если в дальнейшем скрипте обнаружится ошибка – вы будете точно знать, что данная функция не может возвращать строку.

Ну и последнее напутствие – всегда проверяйте входящие данные от пользователя. Будьте параноиком в этом деле, безопасность ещё никогда лишней не была.

Разместил: floopy
Опубликовано: 23.05.2013
Статья "Мануал по php - Безопасность при программировании на PHP+MySQL" прочтена 1543 раза.





Последние новости