безопасные аттрибуты
безопасные аттрибуты
кто объяснит на пальцах для чего это нужно? указывать safe? чат бизар в поиск не отсылать, читал но не могу врубиться зачем это нужно и надо ли вобще делать?
Последний раз редактировалось zibert02 2011.05.09, 20:44, всего редактировалось 1 раз.
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: безопасные аттрибуты
$model->attributes=$_POST['model'];
Только безопасным атрибутам в модели будет автоматически присваивается значения.
Если этим не пользуешься, то безопасные атрибуты тебе не нужны, но тогда прийдется вручную
$model->attr1=$_POST['model']['attr1'];
$model->attr2=$_POST['model']['attr2'];
$model->attr3=$_POST['model']['attr3'];
Только безопасным атрибутам в модели будет автоматически присваивается значения.
Если этим не пользуешься, то безопасные атрибуты тебе не нужны, но тогда прийдется вручную
$model->attr1=$_POST['model']['attr1'];
$model->attr2=$_POST['model']['attr2'];
$model->attr3=$_POST['model']['attr3'];
Жду Yii 3!
- Svyatov
- Сообщения: 459
- Зарегистрирован: 2010.08.12, 14:50
- Откуда: Санкт-Петербург
- Контактная информация:
Re: безопасные аттрибуты
Для того, чтобы ты осознанно взял на себя ответственность принимать непроверенные данные из GET/POST запросов.zibert02 писал(а):кто объяснит на пальцах для чего это нужно? указывать safe? в поиск не отсылать, читал но не могу врубиться зачем это нужно и надо ли вобще делать?
Re: безопасные аттрибуты
спасибо, все оказалось просто
получается если есть атрибуты, для которых нету правил, но они должны быть инициализированы, то надо их пометить как safe
получается если есть атрибуты, для которых нету правил, но они должны быть инициализированы, то надо их пометить как safe
Re: безопасные аттрибуты
ууу, опять шаманство. просил же на пальцахSvyatov писал(а):Для того, чтобы ты осознанно взял на себя ответственность принимать непроверенные данные из GET/POST запросов.zibert02 писал(а):кто объяснит на пальцах для чего это нужно? указывать safe? в поиск не отсылать, читал но не могу врубиться зачем это нужно и надо ли вобще делать?
по вашему выходит, что если для атрибута нету правил, то его нельзя использовать из GET/POST, а если уж так неймется использовать непроверенный атрибут то помечаем его как сейф
Re: безопасные аттрибуты
не совсем так.zibert02 писал(а):спасибо, все оказалось просто
получается если есть атрибуты, для которых нету правил, но они должны быть инициализированы, то надо их пометить как safe
есль атрибуты, а есть свойства модели. Это разные вещи. safe что то типо валидатора который всегда вернет что атрибут верный, обратный ему unsafe
Re: безопасные аттрибуты
атрибуты если не ошибаюсь это имена полей таблицы, свойства это просто переменные-члены класса. safe это для атрибутовBuCeFaL писал(а):не совсем так.zibert02 писал(а):спасибо, все оказалось просто
получается если есть атрибуты, для которых нету правил, но они должны быть инициализированы, то надо их пометить как safe
есль атрибуты, а есть свойства модели. Это разные вещи. safe что то типо валидатора который всегда вернет что атрибут верный, обратный ему unsafe
а что не совсем так?
Re: безопасные аттрибуты
Именно так, только не из GET/POST, а из любого массива вообще.по вашему выходит, что если для атрибута нету правил, то его нельзя использовать из GET/POST, а если уж так неймется использовать непроверенный атрибут то помечаем его как сейф
- Svyatov
- Сообщения: 459
- Зарегистрирован: 2010.08.12, 14:50
- Откуда: Санкт-Петербург
- Контактная информация:
Re: безопасные аттрибуты
Аттрибуты - это и имена полей и члены класса (одно и тоже короче). Наверху привели пример, если используется массовое присваивание значений аттрибутам ($model->attributes=$_POST['model'], то аттрибуты, для которых нет правил нужно помечать как safe, если значение аттрибуту присваивается в частном порядке ($model->attr1=$_POST['model']['attr1'], то не важно safe он или нет.zibert02 писал(а):атрибуты если не ошибаюсь это имена полей таблицы, свойства это просто переменные-члены класса. safe это для атрибутов
а что не совсем так?
Куда еще понятнее-то?
Re: безопасные аттрибуты
всем спасибо, разобрался
Re: безопасные аттрибуты
к примеру CFormModel не имеет полей таблицы.zibert02 писал(а):атрибуты если не ошибаюсь это имена полей таблицы, свойства это просто переменные-члены класса. safe это для атрибутовBuCeFaL писал(а):не совсем так.zibert02 писал(а):спасибо, все оказалось просто
получается если есть атрибуты, для которых нету правил, но они должны быть инициализированы, то надо их пометить как safe
есль атрибуты, а есть свойства модели. Это разные вещи. safe что то типо валидатора который всегда вернет что атрибут верный, обратный ему unsafe
а что не совсем так?
не все что не имеет правил надо в safe пихать.
Re: безопасные аттрибуты
Если у меня атрибуты которые вводят пользователи через форму помеченны как safe это плохо? Что будет если пользователь введет какую-нибудь фигню, например sql-инъекцию? Yii защитит меня от беды?)
Re: безопасные аттрибуты
если на эти атрибуты нету другой валидации, а только safe то вы принудительно указали что эти атрибуты корректные потому sql инекция это корректные данные "защищать " Вас не от чего. Хотя если речь идет про sql иньекции то очень многое за Вас уже сделал CActiveRecord (CDbCriteria).Nihisil писал(а):Если у меня атрибуты которые вводят пользователи через форму помеченны как safe это плохо? Что будет если пользователь введет какую-нибудь фигню, например sql-инъекцию? Yii защитит меня от беды?)
Re: безопасные аттрибуты
Можно, например, еще сказать, что если нет правила валидации, то такой атрибут модели не присвоится из массива. А safe как раз является таким простеньким правилом ( хотя ничего и не проверяет )Svyatov писал(а): Куда еще понятнее-то?