Я новичок в Laravel 7 и мне интересно, есть ли готовое элегантное решение для очистки ввода HTML-формы? Или, может быть, я могу загрузить доверенный сторонний пакет, который вы порекомендуете? Это для данных, которые я буду хранить в базе данных. Спасибо за любую помощь.
Laravel 7 очистка данных формы
Ответы (1)
Одним из рекомендуемых готовых способов очистки данных является использование filter_var, которая поставляется с PHP в сочетании с различными sanitize фильтры. Кстати, это также отличный способ проверки ввода, взгляните на типы фильтров, чтобы узнать больше.
При работе с проектами Laravel мне нравится использовать библиотеку voku/portable-ascii, поскольку она уже зависимость от фреймворка. Это хороший набор функций для очистки ввода, удаления непечатаемых символов и преобразования любого ввода в ASCII с транслитерацией и прочим. Это не всегда идеально, но обычно достаточно хорошо и выполняет свою работу.
Это всегда зависит от того, что вы хотите дезинфицировать, как и почему. Во многих ситуациях вам вообще не нужно дезинфицировать ввод, если вы придерживаетесь лучших практик. При работе с Eloquent или Query Builder ваши данные автоматически экранируются и извлекаются, когда вы их выводите, например. через {{ $data }}
они тоже будут должным образом экранированы.
В некоторых ситуациях вам следует быть более осторожным, особенно если вы сами обрабатываете необработанный пользовательский ввод и, возможно, передаете его системе в параметрах командной строки, именах файлов и т. д. В таких случаях, как правило, рекомендуется быть как можно более ограничительным и разрешающим, насколько это необходимо. Иногда старый добрый preg_replace('/[^0-9A-Z_-]/i', '', $subject)
— правильный выбор. Если вы хотите быть максимально снисходительным, попробуйте приведенные выше предложения.
preg_replace('/[^0-9\(\)\- ]/', '', $number)
должен позаботиться о большей части этого. Кроме того, вы можете использовать проверку формы HTML5, см. разработчик .mozilla.org/en-US/docs/Web/HTML/Element/input/email или тел и т. д. Для проверки см. laravel.com/docs/7.x/validation.
- person Lupinity Labs; 26.08.2020