Cake-PHP.ru
Форум программистов CakePHP
(на сайт)
Watched Topics
FAQ
Поиск
Пользователи
Группы
Регистрация
Профиль
Войти и проверить личные сообщения
Вход
Список форумов Cake-PHP.ru
->
Общий
Ответить
Имя
Тема
Сообщение
Смайлики
Дополнительные смайлики
Цвет шрифта:
По умолчанию
Тёмно-красный
Красный
Оранжевый
Коричневый
Жёлтый
Зелёный
Оливковый
Голубой
Синий
Тёмно-синий
Индиго
Фиолетовый
Белый
Чёрный
Размер шрифта:
Размер шрифта
Очень маленький
Маленький
Обычный
Большой
Огромный
Закрыть теги
[quote="Bes"]Допустим, есть модель хранящая некий user generated content (пост в форуме, коммент в блоге, объявление и т.п.). Путь модель называется Post. Каждая новая запись просматривается и одобряется администратором. Модель имеет поле status, принимающее значение pending, approved или rejected. Допустим, согласно логике приложения автор в любой момент может редактировать запись. При помощи нехитрых манипуляций автор может добавить в форму редактирования поле data[Post][status] со значением approved или любым другим и при сохранении данных обычным $this->Post->save($this->data) в контроллере, поле status будет изменено. Существует ли штатная возможность защитить поля модели от изменения подобным образом, как в рельсах, например? На данный момент лучшим решением мне кажется автоматическое удаление защищённых полей из массива controller->data в beforeFilter. Другие идеи?[/quote]
Настройки
HTML
ВЫКЛЮЧЕН
BBCode
ВКЛЮЧЕН
Смайлики
ВКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Отключить в этом сообщении смайлики
Если у вас плохое зрение или вы не можете прочесть этот код по какой-то другой причине, то обратитесь за помощью к
Администратору
.
Код подтверждения: *
Введите код в точности так, как вы его видите. Код является регистро-зависимым, а символ нуля имеет косую линию внутри цифры.
Часовой пояс: GMT + 3
Перейти:
Выберите форум
CakePHP Форум
----------------
Общий
Установка и настройка
Творчество
Вопросы и пожелания
Комментарии к главам руководства по CakePHP 1.1
Обзор темы
Автор
Сообщение
bunyan
Добавлено: 04 Дек 2008 03:00:49
Заголовок сообщения:
Есть еще свойство whitelist у модели. Можно указать в нем разрешенные поля "в общем", а whitelist-ом метода save() пользоваться в случаях, когда нужно указать другой набор полей.
Bes
Добавлено: 03 Дек 2008 22:20:16
Заголовок сообщения:
Спасибо.
Мне, правда, собственное решение нравится больше — удобнее один раз в модели описать запрещённые поля, чем в каждом сейве разрешённые. И, хотя это чревато муторным дебагом, всё же, буду спокоен, что по умолчанию уязвимость закрыта.
Ну и штатное решение тоже буду применять теперь.
bunyan
Добавлено: 03 Дек 2008 15:26:58
Заголовок сообщения:
Есть параметр whitelist у метода save(), третий, по-моему. В нем можно указать поля, разрешенные для сохранения.
Bes
Добавлено: 02 Дек 2008 22:19:49
Заголовок сообщения: Защита полей модели
Допустим, есть модель хранящая некий user generated content (пост в форуме, коммент в блоге, объявление и т.п.). Путь модель называется Post. Каждая новая запись просматривается и одобряется администратором. Модель имеет поле status, принимающее значение pending, approved или rejected. Допустим, согласно логике приложения автор в любой момент может редактировать запись. При помощи нехитрых манипуляций автор может добавить в форму редактирования поле data[Post][status] со значением approved или любым другим и при сохранении данных обычным $this->Post->save($this->data) в контроллере, поле status будет изменено.
Существует ли штатная возможность защитить поля модели от изменения подобным образом, как в рельсах, например?
На данный момент лучшим решением мне кажется автоматическое удаление защищённых полей из массива controller->data в beforeFilter.
Другие идеи?
Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB
Если ничего интересного не нашли, можно рекламу почитать, а рекламируется у нас сегодня «».