如果用户伪造表单并将输入更改为 ROLE,他可以更改数据库中的该字段。如何保护 Yii 表单免受虚假输入的影响?
模型用户.php
array('role', 'numerical', 'integerOnly'=>true),
您不能“保护表格”。您需要通过会话或其他一些存储状态的方法将该数据从客户端(即表单)移动到服务器(即 php)。
只要用户的机器负责设置数据(即通过表单),他们就可以将其更改为他们想要的任何内容。如果您没有办法在服务器端独立验证这一点,那么不要指望表单会向您发送您可以信任的东西。
关于会话,见:http ://www.yiiframework.com/doc/api/1.1/CHttpSession
来自 Common Weakness Enumeration 项目 ( http://cwe.mitre.org/data/definitions/807.html ) 的详细介绍:
仅在服务器端存储状态信息和敏感数据。确保系统明确且明确地跟踪自己的状态和用户状态,并为合法的状态转换定义规则。不允许任何应用程序用户以任何方式直接影响状态,而不是通过导致状态转换的合法操作。