如果用户伪造表单并将输入更改为ROLE,则可以更改数据库中的该字段。 我怎样才能保护Yii Forms免受假输入?
Model Users.php
array('role', 'numerical', 'integerOnly'=>true),
答案 0 :(得分:2)
你不能'保护表格'。您需要通过会话或其他一些存储状态的方法将数据从客户端(即表单)移动到服务器(即php)。
只要用户的机器负责设置数据(即通过表单),他们就可以将其更改为他们想要的任何内容。如果您没有办法在服务器端独立验证,那么不要指望该表单向您发送您可以信任的内容。
关于会话,请参阅:http://www.yiiframework.com/doc/api/1.1/CHttpSession
Common Weakness Enumeration项目中的详细模糊(http://cwe.mitre.org/data/definitions/807.html):
仅在服务器端存储状态信息和敏感数据。 确保系统明确无误地跟踪 它自己的状态和用户状态,并具有为合法定义的规则 国家转型。不允许任何应用程序用户影响状态 直接以通过合法行为导致的任何其他方式 国家转型。