Page 95 - 4636
P. 95

кількості розробників до тестерів складає приблизно 1:1. Так, ваш шеф може не погодитися на таку
        кількість, але для успіху програми необхідно як можна більшу кількість тестерів;
               примусьте своїх розробників використовувати якусь методологію тестування. Можливо, при
        цьому  не  будуть  виявлені  помилки,  які  знайшов  би  тестер,  але  це  напевно  захистить  продукт  від
        регресії - явища, коли проблема або помилка виправлена, але потім знову внесена при виконанні змін
        в  коді.  Не  можна  дозволяти  розробникам  вносити  зміни  в  проект  без  подальшого  повторного
        тестування;
               спостерігайте за роботою додатка після його розгортання. Регулярний перегляд журналів та
        коментарів  користувачів  або  клієнтів  дозволить  виявити  серйозні  проблеми  або  можливі  дірки
        безпеки. А при виявленні ви зможете усунути їх ще до того, як вони призведуть до катастрофічних
        наслідків.
             Лапки виконання і виклик ехес.
             Ми  вже  згадували  раніше  про  засіб  виконання  команд  оболонки  або  лапки  виковання.  Це
        оператор мови, який дозволяє виконувати довільні команди у командній оболонці (зразок sh у Unix-
        подібних операційних системах або cmd.exe у Windows), укладаючи їх у зворотні лапки ('). Зверніть
        увагу, що це не звичайні прямі лапки ('). Відповідна клавіша зазвичай знаходиться в лівому верхньому
        кутку  англомовної  клавіатури,  а  на  інших  клавіатурах  її  буває  нелегко  знайти.  Лапки  виконання
        повертають  рядок  з  текстовим  результатом  виконання  команди.  Припустимо,  є  текстовий  файл  зі
        списком  імен  і  номерів  телефонів.  Тоді  з  допомогою  команди  grep  можна  знайти  в  цьому  файлі
        список  імен,  що  містять  рядок  “Smith”,  grep  -  це  команда  Unix-подібних  операційних  систем,  яка
        приймає рядковий зразок та список файлів, в яких потрібно знайти цей зразок. Вона повертає рядки,
        що містять зазначений зразок.
              grep [аргументи] зразок файли_для_пошуку...
              У  Windows також є аналог команди grep - це програма findstr.exe. Щоб знайти людей'з
        прізвищем “Smith”, потрібно виконати наступний сценарій:
                 <?php// -i означає не враховувати регістр букв$users = "grep-i
           smith /home/httpd/www/phonenums.txt’;//розділення вихідних рядків в
           масив
                 // у Windows повинно бути не \n, а \r\n!$lines = split($users,
           "\n");foreach ($lines as $line) {// імена та номери телефонів розділені
           комами
                 $namenum = split($lines,’,’);echo "Ім'я: {$namenum[0]}, телефон:
           {$namenum[l]}<br/>\n";}?>
              Якщо  в  командах,  виконуваних  у  зворотних  лапках,  дозволити  появу  інформації,  яку  вводить
        користувач,  то  ви  будете  відкриті  для  всіляких  проблем  безпеки,  або  вам  доведеться  ретельно
        фільтрувати вхідні дані, щоб гарантувати захист системи. У крайньому випадку можна скористатися
        функцією  escapeshellcmd.  Але  все  ж  краще  обмежити  можливі  вхідні  значення.  Більш  того,
        зазвичай потрібно, щоб веб-сервер і РНР працювали в контексті з обмеженими повноваженнями. Але
        для  виконання  деяких  команд  нам  знадобиться  підвищити  повноваження, що  ще  більше  послабить
        захист  системи.  Застосування  цього  оператора  у  виробничому  середовищі  слід  допускати  лише  з
        великою  обережністю.  Виклик  ехес  і  системні  функції  дуже  схожі  на  лапки  виконання,  але  вони
        виконують  команду  самостійно,  а  не  в  середовищі  оболонки,  і  не  завжди  повертають  настільки  ж
        повний  результат.  Для  них  характерні  майже  всі  ті  ж  проблеми  безпеки  і,  отже,  застосовні  ті  ж
        попередження.

              4.7 Захист веб-браузера і РНР

              Не  менш  важлива  і  безпека  інсталяції,  і  конфігурації  веб-сервера  з  РНР.  Велика  частина
        програмного  забезпечення,  яке  встановлено  на  нашому  комп'ютері  і  серверах,  поставляється  з

                                                            92
   90   91   92   93   94   95   96   97   98   99   100