Жанр: Web-мастеринг. Языки и инструменты Описание: Рассмотрены вопросы безопасности и оптимизации сценариев на языке РHР. Большое внимание уделено описанию типичных ошибок программистов, благодаря которым хакеры проникают на сервер, а также представлены методы и приведены практические рекомендации противостояния внешним атакам. Показаны реальные примеры взлома Web-серверов. На компакт-диске приведены исходные тексты примеров, рассмотренных в книге, а также полезные программы и утилиты.
Для Web-программистов, администраторов и специалистов по безопасности.
Оглавление Предисловие 1 Благодарности 3 Как устроена эта книга 3 Глава 1. Введение 5 1.1. Кто такие хакеры? 5 1.2. Как стать хакером? 8 1.3. Что такое РНР? 13 1.4. Как работает РНР? 14 1.5. Серверные и клиентские технологии 16 1.6. Установка РНР 17 Глава 2. Основы РНР 19 2.1. PHP-инструкции 19 2.2. Подключение файлов 25 2.3. Печать 29 2.4. Правила кодирования 30 2.4.1. Комментарии 31 2.4.2. Чувствительность 32 2.4.3. Переменные 34 2.4.4. Основные операции 38 2.4.5. Область видимости 39 2.4.6. Константы 41 2.5. Управление выполнением программы 42 2.6. Циклы 52 Цикл for 52 Цикл while 54 Бесконечные циклы 55 Управление циклами 56 2.7. Управление программой : 58 2.8. Функции 59 2.9. Основные функции 64 Функция substr 64 _Л/ Оглавления Функция strlen 65 Функция strpos 65 Функция preg_replace 67 Функция trim 68 2.10. Массивы 68 2.11. Обработка ошибок 70 2.12. Передача данных 71 2.12.1. Переменные окружения 72 2.12.2. Передача параметров 73 2.12.3. Метод GET 75 2.12.4. Метод POST 78 2.12.5. Уязвимость параметров 81 2.12.6. Скрытые параметры 83 2.13. Хранение параметров пользователя 83 2.13.1. Сеансы 85 2.13.2. Cookie 89 2.13.3. Безопасность cookie 94 2.14. Файлы 95 2.14.1. Открытие файла 96 2.14.2. Закрытие файла 97 2.14.3. Чтение данных .' 97 2.14.4. Дополнительные функции чтения 100 2.14.5. Запись данных 101 2.14.6. Позиционирование в файле 101 2.14.7. Свойства файлов 10 i 2.14.8. Управление файлами 105 2.14.9. Управление каталогами 106 2.14.10. Чтение каталогов 107 Глава 3. Безопасность 111 3.1. Комплексная защита 111 3.2. Права доступа 117 3.2.1. Права сценариев в системе 118 3.2.2. Права сервера баз данных 118 3.2.3. Права на удаленное подключение 120 3.2.4. Права файлов сценариев 121 3.2.5. Сложные пароли 121 3.2.6. Поисковые системы 122 3.3. Как взламывают сценарии 125 3.4. Основы защиты сценариев 129 3.4.1. Реальный пример ошибки 130 3.4.2. Рекомендации по защите 134 3.4.3. Тюнинг РНР 136 Защищенный режим 136 Оглавление V Запреты 137 3.5. Проверка корректности данных 137 3.6. Регулярные выражения 143 3.6.1. Функции регулярных выражений РНР 144 Функция ereg 144 Функция eregi 144 Функция ereg_replace 144 Функция eregi_replace 145 Функция split 145 Функция spliti 145 3.6.2. Использование регулярных выражений РНР 145 3.6.3. Использование регулярных выражений Perl 150 3.6.4. Функции регулярных выражений Perl 153 Функция pregjnatch 153 Функция pregjnatch_all. 154 Функция preg_split 155 3.6.5. Резюме 155 3.7. Что и как фильтровать 156 3.8. Базы данных 159 3.8.1. Основы баз данных 159 3.8.2. Атака SQL Injection 161 3.8.3. Работа с файлами 168 3.8.4. Практика работы с базами данных 169 3.8.5. Мнимая защита 171 3.9. Работа с файлами 172 3.10. Криптография 173 3.10.1. Симметричное шифрование 174 3.10.2. Асимметричное шифрование 176 3.10.3. Необратимое шифрование 176 3.10.4. Практика использования 177 3.11. Атака Cross-Site Scripting 179 3.12. Флуд 180 3.12.1. Защита от флуда сообщениями 180 3.12.2. Защита от накрутки голосований 181 3.13. Защита от изменения формы 183 3.14. Сопровождение журнала 184 3.15. Защита от неправомерных изменений 185 3.17. Панель администратора 186 3.18. Опасный REQUESTJJRI 187 3.19. Резюме 188 Глава 4. Оптимизация 189 4.1. Алгоритм 190 4.2. Слабые места 192 _W Оглавление 4.3. Базы данных 193 4.3.1. Оптимизация запросов 193 4.3.2. Оптимизация СУБД 199 4.3.3. Выборка необходимых данных 201 4.3.4. Изучайте систему. 202 4.3.5. Оптимизация сервера 204 4.4. Оптимизация РНР 205 4.4.1. Кэширование вывода 205 4.4.2. Кэширование страниц 206 4.4.3. Быстрые функции 209 4.5. Оптимизация vs. Безопасность 211 Глава 5. Примеры работы с РНР 215 5.1. Загрузка файлов на сервер 215 5.2. Проверка корректности файла 220 5.3. Запретная зона 223 5.3.1. Аутентификация Web-сервера 223 5.3.2. Защита сценариев правами доступа сервера Apache 230 5.3.3. Самостоятельная система аутентификации 232 5.3.4. Регистрация 240 5.3.5. Сложность паролей 245 5.3.6. Защита соединения 246 5.4. Авторизация 247 5.5. Работа с сетью 248 5.5.1. Работа с DNS 249 5.5.2. Протоколы 250 5.5.3. Сокеты 251 Инициализация 251 Серверные функции 252 Клиентские функции 252 Обмен данными 254 Управление сокетами 255 5.6. Сканер портов 255 5.7. FTP-клиент низкого уровня 259 5.8. Утилита ping 262 5.9. Работа с электронной почтой 265 5.9.1. Протокол SMTP 266 5.9.2. Функция mail 268 5.9.3. Соединение с SMTP-сервером 270 5.9.4. Безопасность электронной почтовой службы 271 5.10. Защита ссылок 271 5.11. РНР в руках хакера 272 Заключение 275 Оглавление Vll_ ПРИЛОЖЕНИЯ 277 Приложение 1. Основы языка SQL 279 Выборка данных 279 Манипуляции данными 283 Приложение 2. Описание компакт-диска 285 Список литературы 287 Предметный указатель 289 [/spoiler] Формат файла: PDF документ Время раздачи: 24/7