0

私はSymfonyでnewbyですので、私の無知を許してください。Symfony 2.8:ユーザーのサービスフィールドの編集を防止する方法

私のプロジェクトでは、ユーザーエンティティをいくつかのフィールドで拡張して、ソナタユーザーバンドルを使用しています。それらのうちのいくつかはユーザ自身が編集でき、他は保守可能で管理者のみが編集することができます。 質問:ユーザーが情報を編集する際のセキュリティを確保する方法は?
2通りの方法があります。
1.ユーザーの役割を確認するカスタム検証制約を使用します。
2. 1対1関連のエンティティを独自のAdminで使用します。
おそらく、このタスクを達成するためのいくつかの標準的な方法がありますか?

ありがとうございます!

UPD:
問題は、異なる場所(管理者エリアとパブリックエリア)から編集できるエンティティ(ユーザー)が1つ存在することです。当然のことながら、管理領域と公開領域のフォームは異なりますが、攻撃者がフォームを偽装し、管理者だけがアクセス可能なフィールドを編集する可能性があります。したがって、私はエンティティのレベルでそれらを保護したいです。出来ますか?

答えて

0

多くの場合、セキュリティがあります。 @Securityには、あなたの行動にhas_role( 'ROLE_ADMIN')アノテーションを使うことができます。また、twigでフィールドを表示するかどうかを指定することもできます。custom voterを使って、オブジェクトを編集したり削除したりすることができます。あなたのニーズを明確に記述して、あなたを助けてください。

+0

問題は、管理領域とパブリック領域という異なる場所から編集できるエンティティ(ユーザー)が1つ存在することです。当然のことながら、管理領域と公開領域のフォームは異なりますが、攻撃者がフォームを偽装し、管理者だけがアクセス可能なフィールドを編集する可能性があります。したがって、私はエンティティのレベルでそれらを保護したいです。出来ますか? – boehpyk

+1

フォーム・イベント・プリセット・データを使用し、データを事前に送信して、authorizationCheckerを構成して、ロード・フォームでの現行ユーザーのロールが正しいかどうかを確認します。 –

関連する問題