В книге PHP глазами хакера. 2- изд. Фленов (+CD) рассмотрены вопросы безопасности и оптимизации сценариев на языке PHP. Описаны типичные ошибки программистов, благодаря которым хакеры проникают на сервер, а также представлены методы и приведены практические рекомендации противостояния внешним атакам. В книге показаны реальные примеры взлома Web-серверов. Во 2-м издании книги большое внимание уделено защите баз данных, шифрованию, рассказано о тесте CAPTCHA, а также о распространенных приемах "борьбы за пользователя" (переадресации, всплывающих окнах и др.). Компакт-диск содержит исходные тексты примеров, рассмотренных в книге, а также полезные программы и утилиты
Содержание книги PHP глазами хакера. 2- изд. Фленов (+CD)
Оглавление Предисловие 1
Благодарности 3
Как устроена эта книга 4
Глава 1. Введение
1.1. Кто такие хакеры? 8
1.2. Как стать хакером? 11
1.3. Что такое PHP? 17
1.4. Как работает PHP? 19
1.5. Серверные и клиентские технологии 21
1.6. Установка PHP 22
Глава 2. Основы PHP
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. Безопасность
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. Оптимизация
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
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. Тег
Книга представляет собой сборник решений наиболее распространенных задач на PHP. Изложен материал, интересный каждому разработчику: базовые типы данных, операции с ними, файлы cookie, функции PHP, аутен-тификация пользователей, работа со слоями, проблемы безопасности, ускорение действия программ, работа в се-ти, создание графических изображений, обработка ошибок, отладка сценариев и написание тестов. Даны рецеп-ты, затрагивающие основы объектно-ориентированного программирования и новые функциональные возможно-сти PHP. Каждый рецепт является самодостаточным и показывает весь путь решения задачи. Книгу завершают главы об использовании PHP вне рамок Web-программирования. Для специалистов в области информационных технологий. Предыдущее издание издавалось под названием "PHP.
В книге "PHP 5 в подлиннике 2-е издание" рассматриваются основы функционирования Web-серверов, сборка исполняемого модуля PHP в ОС UNIX, инструментарий Web-разработчика (в том числе утилиты отладки сценариев), синтаксис и стандартные функции языка.