не довіряй нікому

Якось нещодавно довелось мені зустрітись із проблемою недовіри користувачам. Проблема є тривіальною, проте програмери роблять стільки помилок, що аж волосся випадає, при чому не тільки в мене. У даному випадку я наведу приклад від якого можна відштовхуватись і на його базі буде представлена концепція взаємодії з користувачами. А суть проста, як двері – не довіряти нікому, навіть якщо користувачем є рідна мама. Наприклад є така форма

1.form action=log.php method=GET
2.input maxlength=10 type=”input” name=”username”>Username /input
3./form

От ніби класична форма, яку завше використовують(тут ще повинні бути розставлені символи < та >, але фільтр it.ridne.net їх не пропускав, тому я їх видалив, скористайтесь фантазією і поставте їх де потрібно). Але вона містить потенційну вразливість. І полягає вона в обмеженні довжини до 10 символів(2-а стрічка). Справа в тому, що це обмеження спрацьовує на стороні клієнта, а не сервера. Це означає, що я можу : використати браузер який нехтує параметром maxlength , можу написати свій браузер який буде нехтувати цей параметр і зрештою направити наступний url :

http://server/log.php?username=andrukhivthreat

І це ім’я заканає, бо перевірка правильності заповнення форми даних знаходиться у клієнта. Отже, абсолютно всі механізми фільтрації та захисту полів вводу інформації повинні бути захищені на стороні сервера. У даному прикладі параметр maxlength може слугувати виключно як елемент дизайну сторінки.

© Інформаційні технології. Аналітика , Рідна Мережа