Проверка на въвеждане с помощта на регулярни изрази
Уязвимости при инжектиране
Например SQL Injection
Примерен код
SELECT * FROM users WHERE id=’$id’
$id се извлича от потребителския вход.
ако въведеното от потребителя е по-долу,
‘;DELETE FROM users —
Примерен код за създаване на SQL израз за избор
SELECT * FROM users WHERE id=’’;DELETE FROM users — ‘
Проверете входните стойности с помощта на регулярни изрази
Само буквено-цифрови и дължина 1–5
‘/\A[a-z0–9]{1,5}\z/ui’
- `u` : UTF-8 кодиране
- `i` : режим без регистър
- `\A` `\z` : `\A` винаги съвпада само в началото на низа. По същия начин „\Z“ съвпада само в края на низа.
`^` и `$`
Използване на `^` и `$` като котви за начало на ред и край на ред.
`$` все още съвпада в края на низа, а също и преди всяко прекъсване на реда.
ref: [Урок за Regex — Включване и изключване на режими само за част от регулярния израз](http://www.regular-expressions.info/modifiers.html)
Освен контролни знаци
‘/\A[[:^cntrl:]]{1,30}\z/u’
С изключение на контролни знаци, различни от табулатор, връщане на каретка и преместване на ред
‘/\A[\r\n\t[:^cntrl:]]{1,400}\z/u’