Защита админ панели

261
19 декабря 2016, 19:39

Пишу проект с админ панелью на Laravel 5.2.

/* — сам сайт
/admin/* — панель администратора

На сайте не предусмотрена авторизация пользователей.

Как защитить админ панель? Само собой, ssl покупать придется. Есть вариант с .htaccess, чтобы прописать IP, которым будет дан доступ к /admin.

Как лучше сделать? Расскажите о плюсах и минусах предложенных решений...

Answer 1

Если не предусмотренна авторизация можете создать Middleware с прверкой по IP в app/http/Middlware создаёте файлы IpMiddleware (или любоей другое название)

namespace App\Http\Middleware;
use Closure;
class IpMiddleware{
      public function handle($request, Closure $next)
     {
         if($request->ip() != 'Доверенный ИП'){
              //ИП не соответсвует
              return abort(401);
         }
         //всё впорядке ИП ваш
         return $next($request);
     }
}

Потом в app/http/Kernel.php дописываете d $routeMiddleware массив

'ipcheck' => \App\Http\Middleware\IpMiddleware::class,

Теперь можете его использовать на Руты или в КОнтроллере

Route::get('admin', ['middleware' => 'ipcheck', function()
{
    //
}]);

Или в контроллере

public function __construct()
    {
        $this->middleware('ipcheck')
    }

Это с помощью Laravel ещё можно использоватьbasicAuth

Или средставим Апачи

Какой лучше. Я думаю всё таки лучше закрыть доступ через Апач чтоб можно было вводить Пароль и Логин ну а также дополнительно привязать Laravel к Ip!

Answer 2

Авторизацией называют как раз контроль доступа. А ввод имени и пароля это аутентификация.

Проверяйте права текущего пользователя. В Laravel принято выносить фильтры доступа на уровень middleware. Можно привязать такого посредника конкретно к административным маршрутам.

  • http://laravel.su/docs/5.0/middleware
  • https://laravel.com/docs/5.2/middleware
READ ALSO
Заменить все теги на p

Заменить все теги на p

Имеется HTML-разметка в текстовой переменнойКак можно заменить все теги в этой разметке на тег p? Есть ли стандартные функции PHP для этого? strip_tags()...

196
Как правильно вызвать функцию в php 2 раза?

Как правильно вызвать функцию в php 2 раза?

Код ресайзит(resize) картинки и сохранят в папкуНужно вызвать функцию ресайза, но как-то красиво, чтоб не дублировать код

197
json - вывести только нужные данные

json - вывести только нужные данные

Как пропустить одно (2,3) значение при получении json?

231
Yii2, файл вне web, скачать его

Yii2, файл вне web, скачать его

В проекте на Yii2, я загружаю через форму файлы в папку files, находящуюся в корне проекта, а не в папке web

307