x__miller_x
@x__miller_x

Как закрыть админку сайта?

Доброго дня!
Столкнулся с необходимостью закрыть доступ к админке сайта на симфони. Вход в нее осуществляется со страницы по логину-паролю, но нужно отгородить ее от нежелательных людей в принципе.

Сначала думал воспользоваться стандартными средствами htaccess, но проблема в том, что страница логина имеет вид site.ru/login , а админка site.ru/admin
Физически этих каталогов не существует, поэтому поместить туда файл htaccess нет возможности.
Есть ли какой-то способ решения этой проблемы?
  • Вопрос задан
  • 816 просмотров
Пригласить эксперта
Ответы на вопрос 3
BoShurik
@BoShurik Куратор тега Symfony
Symfony developer
Чтобы не размазывать логику по разным местам и не быть зависимым от apache, я бы воспользовался стандартными средствами:
symfony.com/doc/2.0/book/security.html#basic-examp...

security:
    encoders:
        Symfony\Component\Security\Core\User\User: plaintext

    providers:
        admin:
            memory:
                users:
                    %admin_username%: # парметры admin_username и admin_password можно задавать в parameters.yml
                        password: %admin_password%
                        roles: 'ROLE_SYNC'

    firewalls:
        admin_area:
            provider: admin
            pattern:    ^/admin
            logout:
                path:   /admin/logout
                target: /admin
            http_basic: ~
            anonymous: false

    access_control:
        - { path: ^/admin/login, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/admin/administrator, role: IS_AUTHENTICATED_FULLY }
        - { path: ^/admin, role: IS_AUTHENTICATED_REMEMBERED }
Ответ написан
Комментировать
shambler81
@shambler81 Куратор тега htaccess
Запрет доступа только к файлу private.zip

<Files /admin/index.php> 
AuthType Basic 
AuthName "Private zone. Only for administrator!" 
AuthUserFile  /usr/host/mysite/.htpasswd 
require valid-user 
</Files>
Ответ написан
Комментировать
@imhuman
php.net/manual/ru/features.http-auth.php

Возьмите за образец второй пример и измените под себя. Код разместите в начале index.php, я так понимаю, что у вас все через него проходит. И поставьте условие, чтоб этот код работал только при обращении к админке.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы