PHP статьи и уроки PHP для начинающих. Уроки по PHP.
Работа с массивами, графикой, звуком, базами данных.
Работа с протоколами на сервере HTTP и FTP.
Приветствую Вас, Гость!

Меню сайта
Категории каталога
Общие вопросы
Общие вопросы программирования на PHP
PHP в примерах
рассматриваются конкретные практические примеры скриптов PHP
Безопасность сайта
При создании сайта необходимо защитить его от несанкционированного доступа
Интересное:
Реклама:
Смотрю "Записки о MacBook и Mac OS", в блоге gamedev программиста.
Главная » Статьи » Уроки » Безопасность сайта

Данные, введенные пользователем

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

Пример 1. Потенциально опасное использование переменных

<?php
// удалить файлы из домашней директории пользователя...
// а может, еще что нибудь?
unlink ($evil_var);

// записать в лог-файл выполняемое действие... 
// может быть, даже /etc/passwd?
fwrite ($fp$evil_var);

// выполнение тривиальных действий... или rm -rf *?
system ($evil_var);
exec ($evil_var);

?>

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

  • Будет ли данный скрипт воздействовать исключительно на предполагаемые данные?

  • Правильно ли будут обработаны некорректные или нестандартные данные?

  • Возможно ли использование скрипта не предусмотренным способом?

  • Возможно ли его использование в сочетании с другими скриптами в негативных целях?

  • Будет ли каждая транзакция корректно логирована (протоколирована)?

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

Вы также можете предусмотреть отключение таких конфигурационных опций, как register_globals, magic_quotes и некоторых других, которые могут приводить к сомнениям относительно происхождения или значения получаемых переменных. Использование при написании кода режима error_reporting(E_ALL) может помочь, предупреждая вас об использовании переменных до инициализации или проверки (что предотвратит работу с данными, отличныи от ожидаемых).



Источник: php.su
Категория: Безопасность сайта
Просмотров: 3471
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Copyright Viktor L.P. © 2017 Бесплатный конструктор сайтов - uCoz
down