Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 05.03.2015 12:11:32

Очистка входящих данных

Существует ли в Laravel механизм очистки входящих данных Request::Input()?
Валидация, понятно, есть. Но как быть с sql-инъекциями, html-тегами и т.д., вручную очищать?

Не в сети

#2 05.03.2015 13:15:46

Re: Очистка входящих данных

sql-инъекций в ларе не бывает, она prepared statements использует при формировании запроса. html-тэги тоже не проблема, всё что выводится через {{ ... }} искейпится. осторожным надо быть только при наличии {!! ... !!} в шаблонах — восклицательные знаки на это как бы намекают.

Не в сети

#3 05.03.2015 19:03:59

Re: Очистка входящих данных

  1. всё что выводится через This {{Action}} has wrong syntax and can’t be executed. искейпится

На саммо деле не совсем — сущности не экранируются, т.к. Blade использует e(), а он использует htmlspecialchars() с $double_encode = false. То есть e('<') === '<', а не <, то может иногда породить проблемы.

  1. вручную очищать?

Очищать не надо, надо просто не создавать дыр. Всё зависит от контекста — где-то SQL-инъекция это просто часть текста (статьи, например).

Можете ещё посмотреть в сторону WAF, хотя ИМХО это костыль.

Не в сети

#4 05.03.2015 21:09:40

Re: Очистка входящих данных

С инъекциями понятно, а насчет записи в базу, напр. такого: <strong>username</strong> ?
как-то не очень хорошо...
Такие теги на ура принимаются через Request

Изменено Goshik (05.03.2015 21:17:14)

Не в сети

#5 05.03.2015 22:14:56

Re: Очистка входящих данных

Естественно принимаются. Вопрос в том, что будешь с ними делать. Можешь валидатором вернуть ошибку, можешь удалить, можешь проверить права доступа у конкретного юзера и оставить теги либо опять же удалить.

Не в сети

Подвал раздела