Уебсайтовете и приложенията често изискват въвеждане от потребителя, за да изпълнят пълната си цел. Ако даден уебсайт позволява на потребителите да се абонират, потребителите трябва да могат да предоставят своя имейл адрес. А онлайн пазаруването очевидно изисква въвеждане на данни за плащане.
Проблемът с въведеното от потребителя обаче е, че то също така позволява на хакер да въведе нещо злонамерено в опит да подмами уебсайта или приложението да се държи неправилно. За да се предпази от това, всяка система, която предлага потребителски вход, трябва да има валидиране на входа.
И така, какво е валидиране на входа и как работи?
Какво е валидиране на входа?
Валидирането на входните данни е процес на анализиране на входни данни и недопускане на тези, които се считат за неподходящи. Идеята зад валидирането на входа е, че като се разрешават само входове, които отговарят на конкретни критерии, става невъзможно за атакуващия да въведе вход, предназначен да причини вреда на системата.
Валидирането на въведени данни трябва да се използва на всеки уебсайт или приложение, което позволява въвеждане на потребителски данни. Дори ако даден уебсайт или приложение не съхранява никаква поверителна информация, разрешаването на невалидни въведени данни също може да причини проблеми с потребителското изживяване.
Защо валидирането на входа е важно?
Валидирането на входа е важно поради две причини, а именно потребителското изживяване и сигурността.
Потребителски опит
Потребителите често въвеждат невалидни данни не защото се опитват да атакуват уебсайт или приложение, а защото са направили грешка. Потребителят може да напише дума неправилно или да предостави грешна информация, като например въвеждане на потребителското си име в грешно поле или опит за остаряла парола. Когато това се случи, проверката на входа може да се използва, за да информира потребителя за грешката му, което му позволява да я поправи бързо.
Валидирането на входа също така предотвратява сценарии, при които регистрациите и продажбите са загубени, защото потребителят не е информиран и затова вярва, че е предоставен правилен вход, когато не е.
Сигурност
Валидирането на входа предотвратява широк набор от атаки, които могат да бъдат извършени срещу уебсайт или приложение. Тези кибератаки могат да причинят кражба на лична информация, да позволят неоторизиран достъп до други компоненти и/или да попречат на уебсайт/приложение да функционира.
Пропускането на проверка на входа също е лесно за откриване. Нападателите могат да използват автоматизирани програми, за да въвеждат групово невалидни данни в уебсайтове и да определят как реагират уебсайтовете. След това те могат да стартират ръчни атаки на всички уебсайтове, които не са защитени.
Това означава, че липсата на проверка на входа е не само важна уязвимост; това е уязвимост, която често ще бъде открита и така често може да причини хакове.
Какво представляват атаките за валидиране на въвеждане?
Атака за валидиране на въвеждане е всяка атака, която включва добавяне на злонамерен вход в поле за въвеждане от потребител. Има много различни видове атаки за валидиране на въвеждане, които се опитват да направят различни неща.
Препълване на буфера
Препълване на буфер възниква, когато към системата се добави твърде много информация. Ако проверката на входа не се използва, нищо не пречи на атакуващия да добави толкова информация, колкото иска. Това се нарича a атака при препълване на буфера. Това може да доведе до спиране на функционирането на системата и/или изтриване на информация, която се съхранява в момента.
SQL инжекция
SQL инжектирането е процесът на добавяне на SQL заявки към полетата за въвеждане. Може да приеме формата на добавяне на SQL заявка към уеб формуляр или добавяне на SQL заявка към URL адрес. Целта е да се подмами системата да изпълни заявката. SQL инжектирането може да се използва за достъп до защитени данни и за модифициране или изтриване на данни. Това означава, че проверката на входа е особено важна за всеки уебсайт или приложение, което съхранява важна информация.
Скриптове между сайтове
Скриптирането между сайтове включва добавяне на код към потребителските полета за въвеждане. Често се извършва чрез добавяне на код в края на URL адрес, принадлежащ на реномиран уебсайт. URL адресът може да бъде споделен чрез форуми или социални медии и след това кодът се изпълнява, когато жертва кликне върху него. Това създава злонамерена уеб страница, която изглежда хоствана на уважавания уебсайт.
Идеята е, че ако жертвата се довери на целевия уебсайт, тя трябва да се довери и на злонамерена уеб страница, която изглежда принадлежи на него. Злонамерената уеб страница може да бъде проектирана да краде натискания на клавиши, да пренасочва към други страници и/или да започва автоматично изтегляне.
Как да внедрите проверка на входа
Валидирането на входа не е трудно за прилагане. Просто трябва да разберете какви правила са необходими за предотвратяване на невалидно въвеждане и след това да ги добавите към системата.
Напишете всички въведени данни
Създайте списък с всички възможни потребителски данни. Това ще изисква да прегледате всички потребителски формуляри и да вземете предвид други типове въвеждане, като URL параметри.
Създаване на правила
След като имате списък с всички въведени данни, трябва да създадете правила, които диктуват какви входове са приемливи. Ето няколко общи правила за прилагане.
- Бели списъци: Позволете въвеждането само на определени знаци.
- Черен списък: Предотвратете въвеждането на конкретни знаци.
- Формат: Разрешавайте само въвеждания, които се придържат към конкретен формат, т.е. позволяват само имейл адреси.
- Дължина: Разрешаване на въвеждане само до определена дължина.
Прилагане на правила
За да приложите правилата, ще трябва да добавите код към уебсайта или приложението, който отхвърля всеки вход, който не ги следва. Поради заплахата, породена от невалидни въведени данни, системата трябва да бъде тествана преди пускане в експлоатация.
Създаване на отговори
Ако приемем, че искате проверката на въведените данни също да помогне на потребителите, трябва да добавите съобщения, които обясняват защо въведените данни са неправилни и какво трябва да се добави вместо това.
Валидирането на входа е изискване за повечето системи
Валидирането на въведените данни е важно изискване за всеки уебсайт или приложение, което позволява въвеждане от страна на потребителя. Без контрол върху това какъв вход се добавя към системата, атакуващият разполага с набор от техники, които могат да бъдат използвани за целите на хакерството.
Тези техники могат да сринат система, да я променят и/или да позволят достъп до лична информация. Системите без валидиране на входа стават популярни цели за хакери и интернет непрекъснато се търси за тях.
Въпреки че проверката на входа се използва предимно за целите на сигурността, тя също играе важна роля в уведомяването на потребителите, когато добавят нещо неправилно.