UPDATE products SET text ='<p><strong data-mce-style="font-family: 'times new roman', times; font-size: medium;">Комплектность</strong>:</p>'WHERE id ='2'
Сортировка? Так вы заранее знаете, по чему сортировать можно и в каких направлениях. Вот и проверяйте по белому списку.
Хорошо, с сортировкой и другими передаваемыми параметрами понятно, перед SQL запросом можно сравнить их с белым списком, спасибо за совет.
А как быть например с поисковым запросом, который также передается в адресе и в нем может быть все что угодно, поэтому и нужно проверить URL или поисковый запрос на наличие плохих символов регуляркой.
Возник немного другой вопрос: регулярка '#[^a-zа-яё0-9\s"\/\?&_=-]#ui' вырезает плохие символы, если они переданы в обычном виде, например "abcd * & = -", но что если символы передадут в виде кодов DEC, OCT, HEX, HTML, например "& # 37 ; & # 39 ; & # 43 ;"(без пробелов), регулярка не вырежет плохие символы?
Rinker, надо использовать подготовленные запросы, чтобы не было инъекций, а не велосипедить на регулярках.
Согласен, но в запросы попадают данные из URL, например сортировка, номер страницы, которые нужно обезопасить, так почему бы не экранировать сразу весь URL, а потом уже разбить на составные части и использовать в запросах...
Список допустимых символов:
a-zа-яA-ZА-ЯёЁ - все буквы
0-9 - все числа
\s - пробел
" - двойные кавычки
\/ - слэш
? для параметров в адресе
& для параметров в адресе
= для параметров в адресе
_ нижнее подчеркивание
- тире
Все остальные символы исключены.
Правильно ли составлена регулярка?
Тире правильно прописано? (если его поставить не последним, то работает не корректно).
Может что-то изменить/добавить?
Есть альтернативные варианты полного экранирования ссылок на сайте?
Я конечно же проверил, но действительно ли ссылки, имеющие кириллические слова будут корректно обрабатываться данной регуляркой(для этого указан флаг /u)?
Есть большой скрипт, который запускается с помощью Cron на хостинге. Сам скрипт корректный, все выполняется верно, однако он довольно большой, и состоит из нескольких скриптов (6 штук.), в итоге при выполнении всех 6ти скриптов на хостинге заканчивается память: Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 9673088 bytes).
Увеличивать память не хочется. Подскажите, как можно очистить память/переменные после выполнения каждого из 6 скриптов?
И второй вопрос: разве после выполнения любой функции, все переменные, которые были внутри нее, не очищаются? Как их принудительно очистить?