безопасные аттрибуты

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
zibert02
Сообщения: 203
Зарегистрирован: 2010.11.24, 17:29

безопасные аттрибуты

Сообщение zibert02 »

кто объяснит на пальцах для чего это нужно? указывать safe? чат бизар в поиск не отсылать, читал но не могу врубиться зачем это нужно и надо ли вобще делать?
Последний раз редактировалось zibert02 2011.05.09, 20:44, всего редактировалось 1 раз.
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: безопасные аттрибуты

Сообщение slavcodev »

$model->attributes=$_POST['model'];

Только безопасным атрибутам в модели будет автоматически присваивается значения.
Если этим не пользуешься, то безопасные атрибуты тебе не нужны, но тогда прийдется вручную
$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: безопасные аттрибуты

Сообщение Svyatov »

zibert02 писал(а):кто объяснит на пальцах для чего это нужно? указывать safe? в поиск не отсылать, читал но не могу врубиться зачем это нужно и надо ли вобще делать?
Для того, чтобы ты осознанно взял на себя ответственность принимать непроверенные данные из GET/POST запросов.
zibert02
Сообщения: 203
Зарегистрирован: 2010.11.24, 17:29

Re: безопасные аттрибуты

Сообщение zibert02 »

спасибо, все оказалось просто
получается если есть атрибуты, для которых нету правил, но они должны быть инициализированы, то надо их пометить как safe
zibert02
Сообщения: 203
Зарегистрирован: 2010.11.24, 17:29

Re: безопасные аттрибуты

Сообщение zibert02 »

Svyatov писал(а):
zibert02 писал(а):кто объяснит на пальцах для чего это нужно? указывать safe? в поиск не отсылать, читал но не могу врубиться зачем это нужно и надо ли вобще делать?
Для того, чтобы ты осознанно взял на себя ответственность принимать непроверенные данные из GET/POST запросов.
ууу, опять шаманство. просил же на пальцах
по вашему выходит, что если для атрибута нету правил, то его нельзя использовать из GET/POST, а если уж так неймется использовать непроверенный атрибут то помечаем его как сейф
Аватара пользователя
BuCeFaL
Сообщения: 447
Зарегистрирован: 2010.03.17, 21:22
Откуда: Kiev
Контактная информация:

Re: безопасные аттрибуты

Сообщение BuCeFaL »

zibert02 писал(а):спасибо, все оказалось просто
получается если есть атрибуты, для которых нету правил, но они должны быть инициализированы, то надо их пометить как safe
не совсем так.

есль атрибуты, а есть свойства модели. Это разные вещи. safe что то типо валидатора который всегда вернет что атрибут верный, обратный ему unsafe
Аватара пользователя
BuCeFaL
Сообщения: 447
Зарегистрирован: 2010.03.17, 21:22
Откуда: Kiev
Контактная информация:

Re: безопасные аттрибуты

Сообщение BuCeFaL »

не разные, а для разных целей, так наверное правельнее
zibert02
Сообщения: 203
Зарегистрирован: 2010.11.24, 17:29

Re: безопасные аттрибуты

Сообщение zibert02 »

BuCeFaL писал(а):
zibert02 писал(а):спасибо, все оказалось просто
получается если есть атрибуты, для которых нету правил, но они должны быть инициализированы, то надо их пометить как safe
не совсем так.

есль атрибуты, а есть свойства модели. Это разные вещи. safe что то типо валидатора который всегда вернет что атрибут верный, обратный ему unsafe
атрибуты если не ошибаюсь это имена полей таблицы, свойства это просто переменные-члены класса. safe это для атрибутов
а что не совсем так?
youroff
Сообщения: 228
Зарегистрирован: 2010.02.25, 16:05

Re: безопасные аттрибуты

Сообщение youroff »

по вашему выходит, что если для атрибута нету правил, то его нельзя использовать из GET/POST, а если уж так неймется использовать непроверенный атрибут то помечаем его как сейф
Именно так, только не из GET/POST, а из любого массива вообще.
Аватара пользователя
Svyatov
Сообщения: 459
Зарегистрирован: 2010.08.12, 14:50
Откуда: Санкт-Петербург
Контактная информация:

Re: безопасные аттрибуты

Сообщение Svyatov »

zibert02 писал(а):атрибуты если не ошибаюсь это имена полей таблицы, свойства это просто переменные-члены класса. safe это для атрибутов
а что не совсем так?
Аттрибуты - это и имена полей и члены класса (одно и тоже короче). Наверху привели пример, если используется массовое присваивание значений аттрибутам ($model->attributes=$_POST['model'];), то аттрибуты, для которых нет правил нужно помечать как safe, если значение аттрибуту присваивается в частном порядке ($model->attr1=$_POST['model']['attr1'];), то не важно safe он или нет.

Куда еще понятнее-то? :)
zibert02
Сообщения: 203
Зарегистрирован: 2010.11.24, 17:29

Re: безопасные аттрибуты

Сообщение zibert02 »

всем спасибо, разобрался
Аватара пользователя
BuCeFaL
Сообщения: 447
Зарегистрирован: 2010.03.17, 21:22
Откуда: Kiev
Контактная информация:

Re: безопасные аттрибуты

Сообщение BuCeFaL »

zibert02 писал(а):
BuCeFaL писал(а):
zibert02 писал(а):спасибо, все оказалось просто
получается если есть атрибуты, для которых нету правил, но они должны быть инициализированы, то надо их пометить как safe
не совсем так.

есль атрибуты, а есть свойства модели. Это разные вещи. safe что то типо валидатора который всегда вернет что атрибут верный, обратный ему unsafe
атрибуты если не ошибаюсь это имена полей таблицы, свойства это просто переменные-члены класса. safe это для атрибутов
а что не совсем так?
к примеру CFormModel не имеет полей таблицы.

не все что не имеет правил надо в safe пихать.
Nihisil
Сообщения: 118
Зарегистрирован: 2010.08.05, 06:39

Re: безопасные аттрибуты

Сообщение Nihisil »

Если у меня атрибуты которые вводят пользователи через форму помеченны как safe это плохо? Что будет если пользователь введет какую-нибудь фигню, например sql-инъекцию? Yii защитит меня от беды?)
Аватара пользователя
BuCeFaL
Сообщения: 447
Зарегистрирован: 2010.03.17, 21:22
Откуда: Kiev
Контактная информация:

Re: безопасные аттрибуты

Сообщение BuCeFaL »

Nihisil писал(а):Если у меня атрибуты которые вводят пользователи через форму помеченны как safe это плохо? Что будет если пользователь введет какую-нибудь фигню, например sql-инъекцию? Yii защитит меня от беды?)
если на эти атрибуты нету другой валидации, а только safe то вы принудительно указали что эти атрибуты корректные потому sql инекция это корректные данные "защищать " Вас не от чего. Хотя если речь идет про sql иньекции то очень многое за Вас уже сделал CActiveRecord (CDbCriteria).
Vic
Сообщения: 109
Зарегистрирован: 2010.03.12, 01:55

Re: безопасные аттрибуты

Сообщение Vic »

Svyatov писал(а): Куда еще понятнее-то? :)
Можно, например, еще сказать, что если нет правила валидации, то такой атрибут модели не присвоится из массива. А safe как раз является таким простеньким правилом ( хотя ничего и не проверяет )
Ответить