Page 90 - 4636
P. 90

<inputtype="radio" name="gender"
           vаlue="жіноча"/>Жіноча<Ьr/><inputtype="radio" name="gender"
           value="невизначено"/>He ваша справа<Ьr/><inputtype="submit"
           vаlие="Признатися"/></form></body></html>

              Ця форма може виглядати так, як показано на рис. 4.1. При роботі з такою формою ми можемо
        припустити,  що  змінна  $_POST[  'gender'  ]  у  сценарії  submit_form.php  може  приймати
        тільки значення "чоловічий", "жіночий" або "невизначений" - і це буде помилкою.




















                              Рисунок 4.1 - Проста форма для введення статі користувача

           Як вже було сказано, в мережі використовуєть простий текстовий протокол HTTP. Після клацання
        на  кнопці  у  наведеній  вище  формі  на  сервер  буде  відправлено  текстове  повідомлення  приблизно
        такого вигляду:
           POST /gender.htmlHTTP/1.1 Host: www.yourhostname.comUser-Agent:
           Mozilla/5.ПРО (Windows; U; WindowsNT 6.0; en-US; rv:1.9.0.1)
           Gecko/2008070208 Firefox/3.0.1Content-Type : application/x-www-form-
           urlencodedContent-Length: 14gender=чоловіча
           Але ж ніщо не заважає комусь підключитися до нашого веб-серверу і послати нібито з цієї форми
        довільний текст. Наприклад, такий:
           POST /gender.htmlHTTP/1.1 Kost: www.yourhostname.comUser-Agent:
           Mozilla/5.ПРО (Windows; U; WindowsNT 6.0; en-US; rv:1.9.0.1)
           Gecko/2008070208 Firefox/3.0.1Content-Type: application/x-www-form-
           urlencodedContent-Length: 22 gender=Я+люблю+cookie.
           Припустимо, що в сценарії submit_form.php обробка даних виконується наступним кодом:
           <?phpecho "<р align=\"center\">Стать користувача: ". $_P0ST [ 'gender
           '].",</р>" ;?>
           Тоді  ми  не  застраховані  від  неприємностей.  Набагато  краще  обов'язково  перевіряти,  що  вхідне
        значення дійсно збігається з одним з допустимих:
           <?phpswitch ($ POST['gender']) {case 'чоловіча':
           case 'жіноча':
           case 'невизначена':
           echo. "<p align=\"center\">Чудово! Вашастать -
           ".$_P0ST['gender'].".</p>"; break;
           default:
           echo "<p align=\"center\">" ."<span
           style=\"color:red;\">Увага:</span>"." Дивна якась стать
           попалась...</p>";
                                                            87
   85   86   87   88   89   90   91   92   93   94   95