Интересно, как (если так или иначе) обеспечивается защита XSS в Laravel. Я не мог найти ничего об этом в документации.
проблема
Я использую метод Eloquent create()
для вставки данных в базу данных (в моделях установлены свойства $fillable
/$guarded
). Как оказалось, я могу свободно поместить что-то подобное в любой форме ввода текста:
<script>alert('Hacking Sony in 3...2...')</script>
и значение будет вставлено в базу данных. Тогда, когда echo
ИНГ это - предупреждение показывается.
Возможные решения
Теперь Laravel - действительно хороший фреймворк, поэтому я предполагаю, что должно быть что-то, чтобы предотвратить XSS из коробки. Тем не менее, я не могу узнать, что это такое.
Если я не прав, каков оптимальный способ решить проблему?
- Использую ли я необычную проверку регулярных выражений, чтобы запретить определенные символы?
- Я использую
mysql_real_escape_string()
на каждомInput::get()
я использую? - Должен ли я
strip_tags()
?
Экранирования на уровне просмотра недостаточно
Я знаю, что могу использовать тройные фигурные скобки Blade, чтобы убрать строки в представлениях, но это не главное. Для меня гораздо больше смысла не пускать этих подлых ублюдков в базу данных.
Кто-нибудь уже сталкивался с этой проблемой?