Новые книги

Верн Харниш – признанный мировой эксперт в области развития стартапов, президент компании Gazelles Inc., давшей миру новый термин «компании-газели», – рассказывает о проверенных временем и успешными предпринимателями принципах развития компаний, которые помогут вам не потерять деньги инвесторов, а прибыльно развивать ваш начинающий бизнес. В книге рассказано, как пройти путь от небольшой предпринимательской компании до хорошо структурированной корпорации.

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

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

Данные, Отправляемые Пользователем

Учебник РНР
НазадГлава 4. Безопасность Вперёд

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

Самые большие дыры во многих PHP-программах зависят не столько от самого языка, сколько от кода, написанного без учёта обеспечения безопасности. Соответственно, вы всегда должны выделять время для исследования влияний на данный участок кода, чтобы знать о возможном вреде, который может нанести отправка в него переменной с нестандартным значением.

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

// записать логинг доступа ... или, может быть, вхождение /etc/passwd?
fputs ($fp, $evil_var);

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

?>

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

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

  • Могут ли быть обработаны необычные или нежелательные данные?

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

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

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

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

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


Назад Оглавление Вперёд
Использование Register_Globals ВверхСкрытие PHP