Проверка на въвеждане с помощта на регулярни изрази

Уязвимости при инжектиране

Например 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’