Информация о книге

978-5-9775-0546-8

Главная  » Научно-техническая литература » Информационные технологии. Компьютеры » Программирование » PHP » PHP глазами хакера (+ CD-ROM)

Фленов М. Е., PHP глазами хакера (+ CD-ROM)

БХВ-Петербург, 2010 г., 336 стр., 978-5-9775-0546-8 , 233*164*14 мм., тираж: 2500, 2-е переработанное и дополненное


Описание книги

Рассмотрены вопросы безопасности и оптимизации сценариев на языке РНР. Описаны типичные ошибки программистов, благодаря которым хакеры проникают на сервер, а также представлены методы и приведены практические рекомендации противостояния внешним атакам. Показаны реальные примеры взлома Web-серверов. Во 2-м издании книги большое внимание уделено защите баз данных, шифрованию, рассказано о тесте САРТСНА, а также о распространенных приемах "борьбы за пользователя" (переадресации, всплывающих окнах и др.).
Компакт-диск содержит исходные тексты примеров, рассмотренных в книге, а также полезные программы и утилиты.
Для Web-программистов, администраторов и специалистов по безопасности.

Ключевые слова

Поделиться ссылкой на книгу



Содержание книги

Предисловие 1
Благодарности 3
Как устроена эта книга 4
Глава 1. Введение 7
1.1. Кто такие хакеры? 8
1.2. Как стать хакером? 11
1.3. Что такое PHP? 17
1.4. Как работает PHP? 19
1.5. Серверные и клиентские технологии 21
1.6. Установка PHP 22
Глава 2. Основы PHP 25
2.1. PHP-инструкции 26
2.2. Подключение файлов 30
2.3. Печать 36
2.4. Правила кодирования 37
2.4.1. Комментарии 38
2.4.2. Чувствительность 39
2.4.3. Переменные 41
2.4.4. Основные операции 45
2.4.5. Область видимости 46
2.4.6. Константы 48
2.5. Управление выполнением программы 49
2.6. Циклы 60
2.6.1. Цикл for 60
2.6.2. Цикл while 62
2.6.3. Бесконечные циклы 63
2.6.4. Управление циклами 64
2.7. Прерывание работы программы 66
2.8. Функции 67
2.9. Основные функции работы со строками 72
2.9.1. Функция substr 72
2.9.2. Функция strlen 73
2.9.3. Функция strpos 74
2.9.4. Функция preg_replace 75
2.9.5. Функция trim 76
2.10. Массивы 76
2.11. Обработка ошибок 79
2.12. Передача данных 80
2.12.1. Переменные окружения 80
2.12.2. Передача параметров 81
2.12.3. Метод GET 84
2.12.4. Метод POST 87
2.12.5. Уязвимость параметров 90
2.12.6. Скрытые параметры 92
2.13. Хранение параметров пользователя 93
2.13.1. Сеансы 94
2.13.2. Cookie 99
2.13.3. Безопасность cookie 105
2.14. Файлы 106
2.14.1. Открытие файла 106
2.14.2. Закрытие файла 108
2.14.3. Чтение данных 108
2.14.4. Дополнительные функции чтения 111
2.14.5. Запись данных 112
2.14.6. Позиционирование в файле 113
2.14.7. Свойства файлов 114
2.14.8. Управление файлами 116
2.14.9. Управление каталогами 118
2.14.10. Чтение каталогов 119
Глава 3. Безопасность 123
3.1. Комплексная защита 124
3.2. Права доступа 130
3.2.1. Права сценариев в системе 131
3.2.2. Права сервера баз данных 131
3.2.3. Права на удаленное подключение 133
3.2.4. Права файлов сценариев 134
3.2.5. Сложные пароли 136
3.2.6. Поисковые системы 137
3.3. Как взламывают сценарии 139
3.4. Основы защиты сценариев 144
3.4.1. Реальный пример ошибки 144
3.4.2. Рекомендации по защите 149
3.4.3. Тюнинг PHP 151
Защищенный режим 151
Запреты 152
3.5. Проверка корректности данных 152
3.6. Регулярные выражения 159
3.6.1. Функции регулярных выражений PHP 159
Функция ereg 159
Функция eregi 160
Функция ereg_replace 160
Функция eregi_replace 160
Функция split 160
Функция spliti 161
3.6.2. Использование регулярных выражений PHP
161
3.6.3. Использование регулярных выражений Perl
166
3.6.4. Функции регулярных выражений Perl 168
Функция preg_match 169
Функция preg_match_all 169
Функция preg_split 170
3.6.5. Резюме 170
3.7. Что и как фильтровать 171
3.8. Базы данных 174
3.8.1. Основы баз данных 174
3.8.2. Атака SQL Injection 176
3.8.3. Реальное экранирование 186
3.8.4. Работа с файлами 187
3.8.5. Практика работы с базами данных 187
3.8.6. Проверка URL 189
3.9. Работа с файлами 190
3.10. Криптография 191
3.10.1. Симметричное шифрование 192
3.10.2. Асимметричное шифрование 194
3.10.3. Необратимое шифрование 194
3.10.4. Практика использования шифрования 195
3.11. Атака Cross-Site Scripting 202
3.12. Флуд 203
3.12.1. Защита от флуда сообщениями 204
3.12.2. Защита от накрутки голосований 204
3.13. Защита от изменения формы 207
3.14. Сопровождение журнала 208
3.15. Защита от неправомерных изменений 210
3.16. Панель администратора 210
3.17. Опасная переменная $REQUEST_URI 212
3.18. CAPTCHA 212
Глава 4. Оптимизация 219
4.1. Алгоритм 220
4.2. Слабые места 221
4.3. Базы данных 222
4.3.1. Оптимизация запросов 223
4.3.2. Оптимизация СУБД 228
4.3.3. Выборка необходимых данных 230
4.3.4. Изучайте систему 232
4.3.5. Оптимизация сервера 234
4.4. Оптимизация PHP 235
4.4.1. Кэширование вывода 235
4.4.2. Кэширование страниц 236
4.4.3. Быстрые функции 239
4.5. Оптимизация vs. Безопасность 241
Глава 5. Примеры работы с PHP 245
5.1. Загрузка файлов на сервер 245
5.2. Проверка корректности файла 250
5.3. Запретная зона 253
5.3.1. Аутентификация 253
5.3.2. Защита сценариев правами доступа сервера
Apache 261
5.3.3. Самостоятельная система аутентификации
262
5.3.4. Регистрация 271
5.3.5. Сложность паролей 276
5.3.6. Защита соединения 278
5.4. Авторизация 278
5.5. Работа с сетью 280
5.5.1. Работа с DNS 280
5.5.2. Протоколы 281
5.5.3. Сокеты 282
Инициализация 282
Серверные функции 283
Клиентские функции 284
Обмен данными 285
Управление сокетами 286
5.6. Сканер портов 287
5.7. FTP-клиент низкого уровня 290
5.8. Утилита ping 294
5.9. Работа с электронной почтой 297
5.9.1. Протокол SMTP 298
5.9.2. Функция mail 300
5.9.3. Соединение с SMTP-сервером 302
5.9.4. Безопасность электронной почтовой службы
303
5.10. Защита ссылок 303
5.11. PHP в руках хакера 304
5.12. Уловки 307
5.12.1. Переадресация 307
5.12.2. Всплывающие окна 309
5.12.3. Тег <iframe> 311
5.12.4. Стой, не уходи 312
5.13. Универсальная защита 313
Заключение 315
ПРИЛОЖЕНИЯ 317
Приложение 1. Основы языка SQL 319
Выборка данных 319
Манипуляции данными 323
Приложение 2. Описание компакт-диска 325
Список литературы 326
Предметный указатель 327


Об авторе


Отзывы

Бесполезно  [14 August 2014]
Бесполезно даже для новичка. Про уязвимости, тоже не получите знаний, аккуратнее относитесь к раскрученным брендам по типу Хакера.
Полезно.  [ 3 March 2013]
В книге есть ошибки, но прочитать полезно... для общего развития...
В общем, мне этот автор нравится.
Не рекомендуется  [29 October 2012]
В книге много раз повторяется правило «сначала все запрещаем, потом разрешаем самое необходимое», от которого следует отталкиваться при разработке/управлении серверов. В общем-то все верно, и просто зная это правило, уже можно себе позволить НЕ покупать эту книгу. Все равно разбора настроек вы там не найдете.
Книга - откровенный бред...  [12 February 2011]
Уж извините, прочитал несколько страниц из книги, а именно - о технике SQL Injection. Заранее извиняюсь за код в отзыве :)

Люди, знакомые с этой методикой взлома и PHP, поймут о чем я говорю. В контексте книги автор предлагает удалять из поля id, передаваемого в адресной строке (массив $_GET), символы, не являющиеся цифрами следующим образом:
$id = preg_replace('/^[0-9]/', '', $id);

Цирк уехал - клоуны остались... Эквивалентная запись для вычленения целого:
$id = (int)$id;
или
if (is_numeric($id)){}
или
$id = intval($id);

Уверен, что можно придумать еще несколько способов вычленения числа из строки (при этом автор самостоятельно утверждает, что переменная id - целочисленная, и никаких иных вариантов быть не может). Но метод, описанный автором не лезет ни в какие рамки.
Дальше - больше. Автор также предлагает экранировать строки с помощью регулярных выражений, используя маску 'a-zA-Z0-9 '. А о функции addslashes() он, видимо, не слышал. Нет, я все понимаю, в недавнем времени, один из зарубежных PHP-разработчиков открыл интересную уязвимость связанную с кодировками и функциями addslashes, о которой знают немногие. Но существует также замечательная функция mysql_real_escape_srting($str), которая отлично экранирует все, что нам не нужно. Более того, к таким переменным необходимо применять функцию trim($str), дабы избежать еще одного возможного способа атаки и получения прав администратора, который заключается в том, что база данных MySQL могла автоматически отсечь все пробелы с правой стороны при превышении определенной размерности. Об этом, насколько я понял, - ни слова.

Более того, автор использует register_globals = on, что как известно даже начинающим PHP-программистам, потенциальная дыра в программе (если ее нет, то это не означает, что она не появится через новые 10 строк кода).

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

- Еще я бы добавил, что в книге с названием "PHP глазами хакера" не должно быть вообще разделов типа "А что такое PHP?" и "Основы PHP". Книга с таким названием должна предназначаться для программистов с большим опытом работы. А так, даже книга "O'Relly's PHP recipes" будет значительно лучшим подспорьем для начинающих.
- Также удивляет поверхностное описание серьезных уязвимостей. Т.е., как я понял, обширнейший раздел SQL Injection это 7 страничек? В мусорное ведро... Даже примитивной DOS-атаки на основе SQL Injection + Benchmarking не рассмотрено.

P.S. Я не знаю, какое я издание читал - считаю, что сути дела это не меняет. Книгу не посоветовал бы никому, особенно начинающим.
2Daemon ANR
>>Начать с того, что название языка переврано. PHP (recursive acronym for PHP: Hypertext Preprocessor) в книге обозван "Personal Home Page tool".
Странно, что Вы программируете на PHP 12 лет и не знаете, что изначально аббревиатура PHP не являлась акронимом, а как раз-таки означала Personal Home Page, и лишь только после публикации приобрела иной смысл в качестве акронима. С этим автор не промахнулся, благо, это написано в любой книге о PHP.
К слову, я пишу на PHP 4 года :)
PHP глазами хакера  [26 December 2010]
Книга для начинающего ничего нового не преподнесет кроме заблуждения. Я бы изымал такие книги из продажи, просто откровенный развод.
Отзыв : только маты.
Не очень серьезная книга  [27 November 2010]
Я хоть и новичок в web программировании, но прочитав эту книгу, не узнал практически ничего нового, а обидно, что потратил деньги, т.е. даже из личного опыта и php-ного мануала можно набрать точно такие же знания, и то это приятней. Про диск и говорить нечего. Чего только стоит папка со "свободными" картинками :)
Общее впечатление о книге: общие, нечеткие данные о языке и "безопасности", с кучей ссылок автора на другие свои книги, приводятся не самые лучшие способы реализации многих вещей (хотя это и не так важно), такое ощущение, что книгу писал какой-то, извините, "ламер".
из серии как заработать деньги, написав книгу ни о чем и обо всем подряд  [28 September 2010]
Daemon ANR, где же вы были со своим отзывом)) я правда купила и почитала давно, но после прочтения из слов были только маты, поэтому ничего не стала писать в отзывы.
не знаю какой черт меня попутал, что я купила эту книгу. для хоть сколько-нибудь серьезного программера книга бесполезна. расчет, видимо, на тех, кто раньше не занимался ничем подобным, а потом завел свой блог и решил стать программистом...

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

автору надо публиковаться совместно с Евгением Поповым, будет бомба!
Много чего можно сказать о родственниках... и сказать надо, потому что написать нельзя.  [24 September 2010]
Уже только ссылка на работу автора в журнале "кульхацкер" должна насторожить покупателя и заставить семь раз подумать, прежде чем расставаться с деньгами.

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

Читать эту книгу можно разве что в качестве развлечения. Я через 15 минут после покупки пожалел потраченные деньги. Чтобы было не так обидно, взял в руки маркер и начал отмечать ошибки. Не осталось почти ни одной страницы не подмазанной. Не шутка.

Начать с того, что название языка переврано. PHP (recursive acronym for PHP: Hypertext Preprocessor) в книге обозван "Personal Home Page tool".

Продолжать можно долго (повторяю - на каждой странице есть хотя бы один ляп, на каждой пятой - явная ошибка).

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

P.S.
Мой стаж программирования на PHP - 12 лет, из них 7 я зарабатываю им на хлеб (с икрой...)
PHP по этой книге изучать можно...  [17 June 2010]
PHP по этой книге изучать можно, хотя я бы лучше прочитал её уже после прочтения самоучителя. А вот MySQL перед прочтением книги необходимо изучить (немножко, самые основы).
Для тех, кто с PHP и MySQL уже немного знаком, книга обязательна к прочтению.
Понравилось  [14 June 2010]
Книга очень полезна для понятия логики и методик взлома. Ну и конечно же она богата примерами. В общем я не пожалел, что купил.
PHP глазами хакера (+ CD-ROM) 2-е издание  [20 May 2010]
Достойное обновление первой книги. Материал изложен в легкой, понятной форме подкрепленный листингами программ. Очень полезна для расширения кругозора в направлении безопасного написания продуктов.

Последние поступления в рубрике "PHP"



JavaScript for PHP Developers JavaScript for PHP Developers Stefanov S.

If you want to significantly expand your web development skills beyond PHP, this practical, hands - on book teaches you ECMAScript - the core JavaScript language - from the ground up....

The First Last Kiss The First Last Kiss Harris A.

How do you hold on to a love that is slowly slipping away from you? Can you let go of the past when you know what is in the future? And how do you cope when you know that every kiss is a countdown to goodbye? This is the story of a love affair, of......

1С-Битрикс:строим профессиональный сайт и интернет-магазин (+CD) 1С-Битрикс:строим профессиональный сайт и интернет-магазин (+CD) Басыров Р.

Созданием сайтов, кроме специализированных студий, сегодня занимаются самые разные люди - фрилансеры, работники мелких и средних компаний, служащие бюджетных и государственных организаций, частные пользователи. И многие из них выбирают лучшую на сегодня отечественную систему управления сайтами - "1С-Битрикс: Управление сайтом"....

Если Вы задавались вопросами "где найти книгу в интернете?", "где купить книгу?" и "в каком книжном интернет-магазине нужная книга стоит дешевле?", то наш сайт именно для Вас. На сайте книжной поисковой системы Книгопоиск Вы можете узнать наличие книги Фленов М. Е., PHP глазами хакера (+ CD-ROM) в интернет-магазинах. Также Вы можете перейти на страницу понравившегося интернет-магазина и купить книгу на сайте магазина. Учтите, что стоимость товара и его наличие в нашей поисковой системе и на сайте интернет-магазина книг может отличаться, в виду задержки обновления информации.