0

次のようなコントローラーの場合、私のURLは以下のようになります

/user/profile/{id}/edit

特権のあるメンバーがそこに他の数値を入力すると、データが間違ったユーザーに挿入されるため、今では非常に安全だとは思いません。

基本的に、私は学生の選択リストを含むフォームをフロントページに持っており、教師は学生を選択し、さらに進みます。ここでは、フォームを送信し、useridin session 変数を設定しています。

URLに変数を入れていないため、ページが正常に機能することはほとんどありません。

しかし、ユーザーが追加した割り当てのリストがあるところで行き詰まります。私は表形式で表示しているので、クリックするたびに別の割り当てに移動します。assignmentidURLに入れる必要があります

URLに何も入れる必要がないように、これに取り組む方法はありますか

4

2 に答える 2

1

まず第一に、すべてのユーザー入力/アクションが間違っているか悪意を持っている可能性があると想定する必要があります。そのため、Symfony2 ファイアウォールの下で検証を実装し、ユーザーがユーザーを編集する権限を持っているかどうかを確認する isGranted 関数を実装します。

次に、代わりに URL にユーザー名またはユーザー スラッグの ID を指定する必要があります。ベースのすべてのユーザー ID を収集して編集ページにアクセスするのは、より困難になります。

于 2012-08-13T06:47:34.460 に答える
0

URL を介して ID を渡すことに問題はありません。またはdata を使用して ID を渡すこともできますが、ブラウザの履歴ナビゲーションが混乱する可能性があるため、面倒でユーザーにとって煩わしい場合があります。POSTSESSION

代わりに、セキュリティが懸念される場合は、リクエストごとに権限の検証を行う必要があります。問題が見た目の問題であり、セキュリティの問題ではない場合は、割り当てごとに一意の名前を作成して、代わりに URL で渡すことができます。

于 2012-08-13T04:55:48.023 に答える