2016-11-16 3 views
-2

私はフレームワークSymfonyのアプリケーションを持っていますが、私は特定の権利を持っています。ページにアクセスする権利がない場合はブロックする必要がありますが、ユーザーは依然としてURLを変更してページにアクセスできます。 smsをremplacingによってアプリケーションのセキュリティを強化する方法は?

dialog/campany/mail/fid/setting/new 

しかし、彼らのことができます。たとえば、私は、彼らはそれにアクセスする権利を持って、このURLがあります。

dialog/campany/sms/fid/setting/new 

をし、彼らはこのURLにアクセスする権限がありませんby mail

+0

何を試しましたか?また、あなたの質問にはあなたの設定とコードについての詳細はありません。 – Gerry

+0

アクセスを拒否する標準的な方法は、アクセスごとにユーザーの資格情報を確認し、適切な資格情報がない場合は失敗ページにリダイレクトすることです。あなたはどうやってそれらを現在ブロックしましたか? – halfer

答えて

0

security.ymlの設定方法をチェックアウトし、そこからのアクセスを制御する必要があります。情報が必要な場合は、http://symfony.com/doc/current/security/access_control.htmlにアクセスしてください。

また、特定のページへのアクセスが許可される前にユーザーの資格情報をチェックするアクセスを制御することもできます。

security: 
    access_control: 
     - { path: ^/dialog/campany/sms/, roles: ROLE_SMS } 
     - { path: ^/dialog/campany/mail/, roles: ROLE_MAIL } 

をあなただけに制限したい場合:ROLE_SMSアプリ/設定/ security.ymlファイルでdialog/campany/mail/

にすることができる唯一のアクセスdialog/campany/sms/ROLE_MAILへのアクセスのみをすることができ、あなたが持っているべきであると仮定すると

0

/新しいURLを入力すると、パスを次のように変更できます。

 - { path: ^/dialog/campany/sms/fid/setting/new$, roles: ROLE_SMS } 
     - { path: ^/dialog/campany/mail/fid/setting/new$, roles: ROLE_MAIL } 
+0

答えに感謝しますが、この役割はどこかで定義する必要があります。どこで定義しますか? –

+0

あなたの役割は 'security.yml'で定義します。 FOSUserBundleを使用している場合は、そのマニュアルを参照して、役割にどのように影響するかを確認してください。そうでない場合は、基本的な設定をhttp://symfony.com/doc/current/security.htmlで見つけることができます。 – progg

関連する問題