Проверьте пожалуйста регулярку. Будет использоваться для обработки всех URL-ов, по которым обращаются к сайту, чтобы исключить любые SQL инъекции.
Регулярка
$str = preg_replace('/[^a-zа-яA-ZА-ЯёЁ0-9\s"\/?&_=-]/u', '', $str);
Список допустимых символов:
a-zа-яA-ZА-ЯёЁ - все буквы
0-9 - все числа
\s - пробел
" - двойные кавычки
\/ - слэш
? для параметров в адресе
& для параметров в адресе
= для параметров в адресе
_ нижнее подчеркивание
- тире
Все остальные символы исключены.
Правильно ли составлена регулярка?
Тире правильно прописано? (если его поставить не последним, то работает не корректно).
Может что-то изменить/добавить?
Есть альтернативные варианты полного экранирования ссылок на сайте?
Я конечно же проверил, но действительно ли ссылки, имеющие кириллические слова будут корректно обрабатываться данной регуляркой(для этого указан флаг /u)?
Улучшил регулярку:
$str = preg_replace('#[^a-zа-яё0-9\s"\/\?&_=-]#ui', '', $str); (Отредактировано автором: 05 Декабря, 2018 - 18:01:31)
|