Изменить:
Получив дополнительную информацию от DCoder, я искал здесь фразу «уязвимость массового назначения». То есть, используя преимущества методов, которые сохранят все действительные поля в базе данных, независимо от их присутствия в исходной форме (, делая их уязвимыми для манипулирования данными POST, содержащими больше [возможно, более важных] полей, чем предполагаемые ).
Затем два общих ответа называются «белый список» и «черный список»; поля белого списка, предназначенные для изменения, или поля черного списка, которые не следует изменять.
Затем следует мой вопрос: :CakePHP автоматически вносит в белый список только те поля в форме отправки, или мне (и другим фанатам Cake )необходимо следить за тем, чтобы мы надлежащим образом вносили в белый или черный список?
Cake предлагает множество отличных способов создания форм и обработки их почти автоматически. Размышляя о безопасности, я задумался :о том, знает ли Cake о том, какие поля существуют в отправленной форме, или он просто примет любое допустимое поле? Возьмите следующий сценарий, если я не понимаю смысла (, и кто-то может отредактировать мой вопрос, чтобы он был лучше сформулирован, если они могут придумать лучший способ выразить его):
Допустим, я разрешаю своим пользователям редактировать свой профиль. Я создаю форму с полями для имени пользователя, электронной почты -и пароля под действием edit
.
Умный пользователь хочет войти и изменить свое поле is_admin
с false
на true
, поэтому он использует приложение, такое как firebug, для отправки пользовательских данных сообщения в действие edit
.который включает поле is_admin
, установленное на true
.
Вопрос в том, поймет ли Cake сам, что is_admin
не был в исходной форме, или мне нужно быть осторожным, чтобы явно указать только те поля, которые может изменить данное действие? Есть ли более простой способ?
Благодарю вас!
Джеймс