2016-11-16 72 views
-2

我有一個Symfony框架的應用程序,我擁有特定權限的用戶,如果他們沒有權限訪問頁面,我必須阻止他們,但用戶仍然可以通過修改URL訪問頁面。例如,我有這個URL,他們已經在其訪問權:如何提高我的應用程序安全性?

dialog/campany/sms/fid/setting/new 

和他們沒有訪問這個網址的權利:

dialog/campany/mail/fid/setting/new 

但可以通過remplacing sms通過mail

+0

您嘗試了什麼?你的問題也缺乏關於你的配置和代碼的任何細節。 – Gerry

+0

拒絕訪問的標準方式是檢查每個訪問的用戶憑據,如果他們沒有正確的憑據,則重定向到失敗頁面。你現在怎麼阻止他們? – halfer

回答

0

假設ROLE_SMS只能以dialog/campany/sms/ROLE_MAIL訪問只能到dialog/campany/mail/

在應用程序/配置/ security.yml訪問,你應該有:

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

如果你只是想限制/新的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