На главную | Где купить | Авторам и заказчикам | Вакансии | Реклама | Издательство | Каталог | Статьи наших авторов | Контакты | Прайс листы

Головоломки на PHP для хакера 2-е изд.

Автор Кузнецов М., Симдянов И.
Название Головоломки на PHP для хакера 2-е изд.
Серия Внесерийные книги
ISBN 978-5-9775-0204-7
Формат 70*100 1/16
Объем 544
Тематика
Оптовая цена
    Вернуться к описанию книги

Полное содержание

Оглавление Введение 1
Благодарности 2
ЧАСТЬ I. ЗАДАЧИ 3

Глава I.1. Строки и числа

5
I.1.1. Количество и имена файлов в произвольном каталоге 5
I.1.2. Вывод случайного количества символов 5
I.1.3. Выравнивание по правому краю 6
I.1.4. Выравнивание по левому и правому краям 7
I.1.5. Вывод данных в три столбца 7
I.1.6. Передача массива между двумя страницами 8
I.1.7. Передача массива методом GET 8
I.1.8. Передача массива методом POST 8
I.1.9. Передача массива через сессии 8
I.1.10. Передача массива через cookie 9
I.1.11. Вертикальный вывод строки 9
I.1.12. Число в денежном формате 9
I.1.13. Упаковка IP-адреса 9
I.1.14. Календарь 10
I.1.15. Замена символов bbCode 11
I.1.16. Преобразование десятичного числа в двоичное и обратно 11
I.1.17. Возведение числа в степень 12
I.1.18. Изменение регистра строки 12
I.1.19. Преобразование арабского числа в римское 12

Глава I.2. Регулярные выражения

13
I.2.1. Удаление всех тегов из HTML-страницы 13
I.2.2. Удаление изображений из HTML-страницы 14
I.2.3. Преобразование нескольких пробельных символов в один 14
I.2.4. Извлечение названия HTML-страницы 14
I.2.5. Конвертация даты из MySQL-формата в календарный формат 14
I.2.6. Проверка корректности ввода адреса электронной почты 14
I.2.7. Проверка корректности ввода URL 15
I.2.8. Подсветка URL 15
I.2.9. Проверка корректности ввода чисел 15
I.2.10. Изменение регистра 15
I.2.11. Разбивка длинной строки 16
I.2.12. Разбивка HTML-страницы на предложения 16
I.2.13. Количество слов в тексте 16
I.2.14. Интерпретация тегов bbCode 16
I.2.15. Подсветка PHP-кода 18
I.2.16. Замена подстроки с условием 18

Глава I.3. Файлы

19
I.3.1. Загрузка файлов на сервер 19
I.3.2. Загрузка файла на сервер по частям 20
I.3.3. Создание файла с уникальным именем 20
I.3.4. Редактирование файлов на удаленном сервере 20
I.3.5. Уязвимость скрипта загрузки 20
I.3.6. Счетчик загрузок 21
I.3.7. Сохранение текстовых и графических файлов 21
I.3.8. Определение размера файла 23
I.3.9. Определение количества строк в файле 23
I.3.10. Изменение порядка следования строк в файле 23
I.3.11. Случайный вывод из файла 23
I.3.12. Редактирование файла 24
I.3.13. Сортировка содержимого текстового файла 24
I.3.14. Добавление записи в файл 24
I.3.15. Постраничная навигация для файла 24
I.3.16. Самая длинная и самая короткая строка в файле 25
I.3.17. Вывод из файла списка строк заданной длины 25
I.3.18. Вывод слов из файла по первым символам 25
I.3.19. Список файлов и подкаталогов в каталоге 25
I.3.20. Количество файлов в каталогах 25
I.3.21. Количество строк в файлах проекта 26
I.3.22. Замена строки во всех файлах вложенных подкаталогов 27
I.3.23. Копирование содержимого одного каталога в другой 27
I.3.24. Удаление каталога 27
I.3.25. Подсчет объема памяти, занимаемой каталогом 27
I.3.26. Система регистрации 27
I.3.27. Случайное изображение из каталога 28
I.3.28. Определение даты создания изображения 28
I.3.29. Взлом гостевой книги 28

Глава I.4. MySQL

30
I.4.1. Система регистрации 30
I.4.2. SQL-инъекция по числовому параметру 32
I.4.3. Определение версии сервера MySQL 33
I.4.4. Поиск пользователя — SQL-инъекция 33
I.4.5. Удаление пользователей при помощи SQL-инъекции 35
I.4.6. Постраничная навигация 37
I.4.7. Алфавитная навигация 39
I.4.8. Сортировка 40
I.4.9. Двойной выпадающий список 40
I.4.10. Удаление сразу нескольких позиций 41
I.4.11. Хранение MP3-файлов в базе данных 41
I.4.12. Хранение изображений в базе данных 42
I.4.13. Загрузка данных из дампа базы данных 43
I.4.14. Шифрование содержимого базы данных 44

Глава I.5. Протокол HTTP

45
I.5.1. Загрузка страницы 45
I.5.2. Получение HTTP-заголовков с сервера 45
I.5.3. Определение размера файла на удаленном хосте 46
I.5.4. Отправка данных методом POST 46
I.5.5. Получение точного времени 47

Глава I.6. Сессии и cookie

48
I.6.1. Пользователи Online 49
I.6.2. Собственный механизм сессии 49
I.6.3. Защита HTML-формы при помощи сессии 49
I.6.4. Определение, включены ли cookie у посетителя 50
I.6.5. Фальсификация cookie 50
I.6.6. Обход защищенной сессией HTML-формы 51
I.6.7. Межсайтовый скриптинг 52
I.6.8. Похищение cookie 54

Глава I.7. Пользовательские агенты и рефереры

55
I.7.1. Переходы с других сайтов 55
I.7.2. Защита HTML-формы при помощи реферера 56
I.7.3. Фальсификация реферера 57
I.7.4. Ключевые слова поисковых систем 57
I.7.5. Распознавание посещений сайта роботами поисковых систем 57
I.7.6. Защита от менеджеров загрузки 57
I.7.7. Фальсификация пользовательского агента 58

Глава I.8. Авторизация и аутентификация

59
I.8.1. Авторизация на файлах 60
I.8.2. Шифрование пароля 61
I.8.3. Подбор пароля перебором 62
I.8.4. Подбор пароля по словарю 62
I.8.5. Генератор паролей 63
I.8.6. Защита текстовых файлов от просмотра в браузере 63
I.8.7. Авторизация при помощи cookie 64
I.8.8. Защита имени пользователя от подделки 66
I.8.9. Авторизация при помощи сессий 67
I.8.10. Шифрование пароля в базе данных 69
I.8.11. Базовая HTTP-авторизация 69

Глава I.9. Использование информации со сторонних сайтов

70
I.9.1. Загрузка страницы с удаленного хоста 71
I.9.2. Извлечение ссылок с Yandex 71
I.9.3. Извлечение ссылок с Google 72
I.9.4. Извлечение ссылок с Rambler 73
I.9.5. Извлечение ссылок с Aport 74
I.9.6. Определение курса валют из XML-файла 76
I.9.7. Определение динамики курса валют 77
I.9.8. Загрузка новостей со стороннего сайта 78
I.9.9. Создание новостного RSS-канала 78

Глава I.10. FTP-протокол

80
I.10.1. Определение типа операционной системы 80
I.10.2. Список файлов на FTP-сервере 80
I.10.3. Загрузка файлов 80
I.10.4. Изменение прав доступа 81
I.10.5. Какой объем памяти занимает сайт? 81
I.10.6. Поиск файлов, чей размер превышает 100 Кбайт 81
I.10.7. Перенос сайта с одного хоста на другой 81

Глава I.11. Электронная почта

82
I.11.1. Отправка почтового сообщения с сайта 82
I.11.2. Отправка письма с вложением 82
I.11.3. Массовая рассылка писем 82
I.11.4. Предотвращение массовой рассылки 83
I.11.5. Отправка почтового сообщения через SMTP-ретранслятор 83
I.11.6. Выяснение адресов почтовых ретрансляторов 83
I.11.7. Подсчет количества писем в почтовом ящике 83
I.11.8. Чтение заголовков писем 83
I.11.9. Удаление писем из почтового ящика 83

Глава I.12. Whois-сервис

84
I.12.1. Определение принадлежности IP-адресов 84
I.12.2. Определение принадлежности европейских IP-адресов 84
I.12.3. Следование реферальному серверу 85
I.12.4. Определение IP-адреса по сетевому адресу 86
I.12.5. Определение сетевого адреса по IP-адресу 86
I.12.6. Выяснение, занят ли домен 86

Глава I.13. Объектно-ориентированное программирование

87
I.13.1. Определение класса объекта 88
I.13.2. Счетчик объектов 89
I.13.3. Транзакции 89
I.13.4. Получение копии объекта 91
I.13.5. Хранение объекта в СУБД MySQL 92
I.13.6. Постраничная навигация 93
I.13.7. Создание исключений 94
I.13.8. Определение версии PHP и расширений 95
I.13.9. Распознавание загруженных расширений и их версий 95

Глава I.14. Шпионские скрипты

96
I.14.1. Слежение за ссылкой на удаленной странице 96
I.14.2. Проверка ссылочной целостности 96
I.14.3. Новые файлы на виртуальном хосте 97
I.14.4. Слишком большие файлы на виртуальном хосте 97

Глава I.15. Динамические изображения (GDLib)

98
I.15.1. Счетчик посещений 98
I.15.2. Несколько изображений на странице 98
I.15.3. Определение размера изображения 98
I.15.4. Защитное изображение для HTML-формы 99
I.15.5. Создание уменьшенной копии 99
I.15.6. Водяные знаки 100
I.15.7. Кривая Безье 100
I.15.8. Построение гистограммы 101
I.15.9. Построение круговой диаграммы 102

Глава I.16. Разное

103
I.16.1. Обмен значений переменных 103
I.16.2. Скрипт предзагрузки страницы 103
I.16.3. Использование утилиты ping 104
I.16.4. Работа с номером узла 104
I.16.5. Права доступа 104
I.16.6. Эмуляция утилиты tar 104
I.16.7. Буферизация данных 105
I.16.8. Размер страницы 105
I.16.9. Разгрузка баржи 106
I.16.10. Продолжительность жизни ученого 107
I.16.11. Выгода предпринимателя 107
ЧАСТЬ II. РЕШЕНИЯ 109

Глава II.1. Строки и числа

111
II.1.1. Количество и имена файлов в произвольном каталоге 111
II.1.2. Вывод случайного количества символов 114
II.1.3. Выравнивание по правому краю 115
II.1.4. Выравнивание по левому и правому краям 119
II.1.5. Вывод данных в три столбца 121
II.1.6. Передача массива между двумя страницами 123
II.1.7. Передача массива методом GET 123
II.1.8. Передача массива методом POST 125
II.1.9. Передача массива через сессии 126
II.1.10. Передача массива через cookie 128
II.1.11. Вертикальный вывод строки 129
II.1.12. Число в денежном формате 130
II.1.13. Упаковка IP-адреса 131
II.1.14. Календарь 132
II.1.15. Замена символов bbCode 135
II.1.16. Преобразование десятичного числа в двоичное и обратно 137
II.1.17. Возведение числа в степень 144
II.1.18. Изменение регистра строки 146
II.1.19. Преобразование арабского числа в римское 147

Глава II.2. Регулярные выражения

151
II.2.1. Удаление всех тегов из HTML-страницы 151
II.2.2. Удаление изображений из HTML-страницы 152
II.2.3. Преобразование нескольких пробельных символов в один 153
II.2.4. Извлечение названия HTML-страницы 154
II.2.5. Конвертация даты из MySQL-формата в календарный 155
II.2.6. Проверка корректности ввода адреса электронной почты 156
II.2.7. Проверка корректности ввода URL 157
II.2.8. Подсветка URL 158
II.2.9. Проверка корректности ввода чисел 159
II.2.10. Изменение регистра 160
II.2.11. Разбивка длинной строки 161
II.2.12. Разбивка текста на предложения 162
II.2.13. Количество слов в тексте 164
II.2.14. Интерпретация тегов bbCode 166
II.2.15. Подсветка PHP-кода 167
II.2.16. Замена подстроки с условием 170

Глава II.3. Файлы

172
II.3.1. Загрузка файлов на сервер 172
II.3.2. Загрузка файла на сервер по частям 174
II.3.3. Создание файла с уникальным именем 176
II.3.4. Редактирование файлов на удаленном сервере 177
II.3.5. Уязвимость скрипта загрузки 179
II.3.6. Счетчик загрузок 183
II.3.7. Сохранение текстовых и графических файлов 185
II.3.8. Определение размера файла 186
II.3.9. Определение количества строк в файле 188
II.3.10. Изменение порядка следования строк в файле 188
II.3.11. Случайный вывод из файла 189
II.3.12. Редактирование файла 190
II.3.13. Сортировка содержимого текстового файла 190
II.3.14. Добавление записи в файл 195
II.3.15. Постраничная навигация 196
II.3.16. Самая длинная и самая короткая строка в файле 198
II.3.17. Вывод из файла списка строк заданной длины 199
II.3.18. Вывод слов из файла по первым символам 200
II.3.19. Список файлов и подкаталогов в каталоге 203
II.3.20. Количество файлов в каталогах 204
II.3.21. Количество строк в файлах проекта 205
II.3.22. Замена строки во всех файлах вложенных подкаталогов 207
II.3.23. Копирование содержимого одного каталога в другой 208
II.3.24. Удаление каталога 209
II.3.25. Подсчет объема памяти, занимаемой каталогом 210
II.3.26. Система регистрации 211
II.3.27. Случайное изображение из каталога 216
II.3.28. Определение даты создания изображения 216
II.3.29. Взлом гостевой книги 217

Глава II.4. MySQL и SQL-инъекции

220
II.4.1. Система регистрации 220
II.4.2. SQL-инъекция по числовому параметру 223
II.4.3. Определение версии сервера MySQL 228
II.4.4. Поиск пользователя — SQL-инъекция 229
II.4.5. Удаление пользователей при помощи SQL-инъекции 234
II.4.6. Постраничная навигация 237
II.4.7. Алфавитная навигация 240
II.4.8. Сортировка 242
II.4.9. Двойной выпадающий список 244
II.4.10. Удаление сразу нескольких позиций 249
II.4.11. Хранение MP3-файлов в базе данных 251
II.4.12. Хранение изображений в базе данных 255
II.4.13. Загрузка данных из дампа базы данных 259
II.4.14. Шифрование содержимого базы данных 259

Глава II.5. Протокол HTTP

264
II.5.1. Загрузка страницы 264
II.5.2. Получение HTTP-заголовков с сервера 277
II.5.3. Определение размера файла на удаленном хосте 281
II.5.4. Отправка данных методом POST 282
II.5.5. Получение точного времени 284

Глава II.6. Сессии и cookie

286
II.6.1. Пользователи Online 286
II.6.2. Собственный механизм сессии 289
II.6.3. Защита HTML-формы при помощи сессии 294
II.6.4. Определение, включены ли cookie у посетителя 295
II.6.5. Фальсификация cookie 296
II.6.6. Обход защищенной сессией HTML-формы 298
II.6.7. Межсайтовый скриптинг 302
II.6.8. Похищение cookie 303

Глава II.7. Пользовательские агенты и рефереры

305
II.7.1. Переходы с других сайтов 305
II.7.2. Защита HTML-формы при помощи реферера 307
II.7.3. Фальсификация реферера 308
II.7.4. Ключевые слова поисковых систем 310
II.7.5. Распознавание посещений сайта роботами поисковых систем 311
II.7.6. Защита от менеджеров загрузки 313
II.7.7. Фальсификация пользовательского агента 313

Глава II.8. Авторизация и аутентификация

315
II.8.1. Авторизация на файлах 315
II.8.2. Шифрование пароля 320
II.8.3. Подбор пароля перебором 323
II.8.4. Подбор пароля по словарю 330
II.8.5. Генератор паролей 332
II.8.6. Защита текстовых файлов от просмотра в браузере 333
II.8.7. Авторизация при помощи cookie 333
II.8.8. Защита имени пользователя от подделки 340
II.8.9. Авторизация при помощи сессий 341
II.8.10. Шифрование пароля в базе данных 344
II.8.11. Базовая HTTP-авторизация 345

Глава II.9. Использование информации со сторонних сайтов

348
II.9.1. Загрузка страницы с удаленного хоста 348
II.9.2. Извлечение ссылок с Yandex 349
II.9.3. Извлечение ссылок с Google 351
II.9.4. Извлечение ссылок с Rambler 356
II.9.5. Извлечение ссылок с Aport 358
II.9.6. Определение курса валют из XML-файла 360
II.9.7. Определение динамики курса валют 362
II.9.8. Загрузка новостей со стороннего сайта 365
II.9.9. Создание новостного RSS-канала 367

Глава II.10. FTP-протокол

372
II.10.1. Определение типа операционной системы 372
II.10.2. Список файлов на FTP-сервере 374
II.10.3. Загрузка файлов 376
II.10.4. Изменение прав доступа 379
II.10.5. Какой объем памяти занимает сайт? 380
II.10.6. Поиск файлов, чей размер превышает 100 Кбайт 381
II.10.7. Перенос сайта с одного хоста на другой 383

Глава II.11. Электронная почта

386
II.11.1. Отправка почтового сообщения с сайта 386
II.11.2. Отправка письма с вложением 388
II.11.3. Массовая рассылка писем 391
II.11.4. Предотвращение массовой рассылки 393
II.11.5. Отправка почтового сообщения через SMTP-ретранслятор 395
II.11.6. Выяснение адресов почтовых ретрансляторов 396
II.11.7. Подсчет количества писем в почтовом ящике 397
II.11.8. Чтение заголовков писем 402
II.11.9. Удаление писем из почтового ящика 407

Глава II.12. Whois-сервис

409
II.12.1. Определение принадлежности IP-адресов 409
II.12.2. Определение принадлежности европейских IP-адресов 410
II.12.3. Следование реферальному серверу 411
II.12.4. Определение IP-адреса по сетевому адресу 414
II.12.5. Определение сетевого адреса по IP-адресу 415
II.12.6. Выяснение, занят ли домен 415

Глава II.13. Объектно-ориентированное программирование

422
II.13.1. Определение класса объекта 422
II.13.2. Счетчик объектов 424
II.13.3. Транзакции 427
II.13.4. Получение копии объекта 430
II.13.5. Хранение объекта в СУБД MySQL 431
II.13.6. Постраничная навигация 434
II.13.7. Создание исключений 455
II.13.8. Определение версии PHP и расширений 459
II.13.9. Распознавание загруженных расширений и их версии 459

Глава II.14. Шпионские скрипты

461
II.14.1. Слежение за ссылкой на удаленной странице 461
II.14.2. Проверка ссылочной целостности 468
II.14.3. Новые файлы на виртуальном хосте 471
II.14.4. Слишком большие файлы на виртуальном хосте 473

Глава II.15. Динамические изображения (GDLib)

475
II.15.1. Счетчик посещений 475
II.15.2. Несколько изображений на странице 478
II.15.3. Определение размера изображения 480
II.15.4. Защитное изображение для HTML-формы 482
II.15.5. Создание уменьшенной копии 486
II.15.6. Водяные знаки 488
II.15.7. Кривая Безье 490
II.15.8. Построение гистограммы 493
II.15.9. Построение круговой диаграммы 495

Глава II.16. Разное

497
II.16.1. Обмен значений переменных 497
II.16.2. Скрипт предзагрузки страницы 497
II.16.3. Использование утилиты ping 499
II.16.4. Работа с номером узла 500
II.16.5. Права доступа 502
II.16.6. Эмуляция утилиты tar 506
II.16.7. Буферизация данных 509
II.16.8. Размер динамической страницы 510
II.16.9. Разгрузка баржи 510
II.16.10. Продолжительность жизни ученого 512
II.16.11. Выгода предпринимателя 513
Заключение 515
ПРИЛОЖЕНИЯ 517
Приложение 1. Регулярные выражения 519
П1.1. Синтаксис регулярных выражений 519
П1.2. Функции для работы с регулярными выражениями 523
П1.2.1. Функция preg_grep() 524
П1.2.2. Функция preg_match() 524
П1.2.3. Функция preg_match_all() 524
П1.2.4. Функция preg_quote() 526
П1.2.5. Функция preg_replace() 526
П1.2.6. Функция preg_replace_callback() 527
П1.2.7. Функция preg_split() 527
Приложение 2. Описание компакт-диска 528
Предметный указатель 529
XII Оглавление XI Оглавление


На главную | Где купить | Авторам | Вакансии | Реклама | Издательство | Каталог | Статьи наших авторов | Контакты
© 2001–2017 Издательство «БХВ-Петербург».
Все права защищены. Частичное или полное копирование текстов, слоганов и фотоизображений без письменного согласия Правообладателя запрещено.