ユーザーがフォームを偽造し、入力を ROLE に変更すると、データベース内のそのフィールドを変更できます。偽の入力から Yii フォームを保護するにはどうすればよいですか?
モデルUsers.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 ) からの詳細な宣伝文句:
状態情報と機密データをサーバー側にのみ保存します。システムが自身の状態とユーザーの状態を明確かつ明確に追跡し、正当な状態遷移のルールが定義されていることを確認してください。状態遷移につながる正当なアクション以外の方法で、アプリケーション ユーザーが直接状態に影響を与えることを許可しないでください。