0

ユーザーがフォームを偽造し、入力を ROLE に変更すると、データベース内のそのフィールドを変更できます。偽の入力から Yii フォームを保護するにはどうすればよいですか?

モデルUsers.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 に答える