0

如果用户伪造表单并将输入更改为 ROLE,他可以更改数据库中的该字段。如何保护 Yii 表单免受虚假输入的影响?

模型用户.php

array('role', 'numerical', 'integerOnly'=>true),
4

1 回答 1

2

您不能“保护表格”。您需要通过会话或其他一些存储状态的方法将该数据从客户端(即表单)移动到服务器(即 php)。

只要用户的机器负责设置数据(即通过表单),他们就可以将其更改为他们想要的任何内容。如果您没有办法在服务器端独立验证这一点,那么不要指望表单会向您发送您可以信任的东西。

关于会话,见:http ://www.yiiframework.com/doc/api/1.1/CHttpSession

来自 Common Weakness Enumeration 项目 ( http://cwe.mitre.org/data/definitions/807.html ) 的详细介绍:

仅在服务器端存储状态信息和敏感数据。确保系统明确且明确地跟踪自己的状态和用户状态,并为合法的状态转换定义规则。不允许任何应用程序用户以任何方式直接影响状态,而不是通过导致状态转换的合法操作。

于 2012-10-22T16:01:42.667 回答