Page 100 - 4636
P. 100
зв'язків, які може одночасно обробляти сервер баз даних (воно вказується в налаштуваннях), не менше
кількості підключень, які можуть запросити веб-сервер і РНР. Ми вже згадували, що Apache HTTP
Server серії 1.3.x за замовчуванням може запускати до 150 серверів. Якщо у файлі my.ini для MySQL
зазначено стандартне кількість з'єднання ний 100, то є невідповідність конфігурацій. В цьому випадку
потрібно внести до файлу my ini наступну зміну:
max_connections=151
Тут виділено додаткове підключення, тому MySQL завжди резервує одне підключення для
користувача root. Це робиться для того, щоб навіть при повному завантаженні сервера адміністратор
міг увійти в систему і виконати необхідні дії.
Робота сервера. Можна також зробити ряд заходів щодо захисту працюючого сервера баз даних.
Найголовніше - його ніколи не слід запускати від імені адміністратора (root в Unix або администратора
Windows). Якщо такий сервер вдасться скомпрометувати, то під загрозою опиниться вся система.
Взагалі MySQL і не запускається від імені суперкористувача, якщо його спеціально не змусити (що,
звичайно, не рекомендовано). Після установки програмного забезпечення СУБД необхідно змінити
власників і права доступу для каталогів та файлів бази даних, щоб вкрити їх від сторонніх очей.
Упевніться, що це зроблено, і що власник файлів бази даних не є root (тоді процес сервера баз даних,
який також запущений не від імені суперкористувача, не зможе записати дані навіть у файли своєї
бази). І, нарешті, при роботі з системою прав доступу і аутентифікації створюйте користувачів з
абсолютно необхідним мінімумом прав. Не створюйте користувачів з широкими можливостями тому,
що “одного дня вони можуть знадобитися”. Краще додайте права, коли (і якщо) вони реально
знадобляться.
4.9 Захист мережі
Є декілька способів захисту мережі, в якій є веб-додаток. Точні деталі виходять за рамки даної
лекції, але неважко розібратися в цьому самостійно і захистити не тільки свої веб-додатки.
Встановіть брандмауери. Аналогічно фільтрів вхідних даних, які надходять у веб-додаток,
написана на РНР, необхідно фільтрувати весь трафік, що надходить у мережу - незалежно від того,
вступає він в офіси своєї корпорації або в інформаційний центр, в якому є наші сервери і додатки. Це
можна зробити за допомогою брандмауера, який може бути як програмою, що працює під відомою
операційною системою на зразок FreeBSD, Linux або Microsoft Windows, так і спеціальним пристроєм,
закуплених у постачальника мережевого обладнання. Брандмауер фільтрує весь небажаний трафік і
блокує доступ до тих частин мережі, які потрібно захистити. Протокол TCP/IP, що лежить в основі
Інтернету, працює з портами. Різні порти призначені різних видів трафіку (наприклад, для HTTP
виділений порт 80). Велика кількість портів використовується тільки для мережевого трафіку і
практично не потрібно для взаємодії з зовнішнім світом. Заборонивши трафік, який входить до мережі
або виходить з неї через ці порти, ми знизимо ризик компрометації наших комп'ютерів і/або серверів
(а, отже, і наших веб-додатків).
Використовуйте DMZ. Як вже було сказано вище в даній лекції, сервери веб-додатки
піддаються ризику бути атакованими не тільки зовнішніми користувачами, але і внутрішніми
зловмисниками. Остання категорія не така численна, але вона може принести більше шкоди, оскільки
добре знайома з деталями роботи компанії. Одним із способів зниження цього ризику є реалізація так
званої демілітаризованої зони, або DMZ (Demilitarized Zone). При цьому сервери, на яких виконуються
веб-додатки (а також інші сервери, наприклад, корпоративний поштовий сервер), ізолюються від
зовнішнього Інтернету, так і від внутрішніх корпоративних мереж, як показано на рис. 4.3.
97