创建安全管理URL - Laravel

时间:2018-01-05 16:52:07

标签: laravel

我创建了一条路由,我发送给尚未成为管理员的管理员加入系统。路线就像myGames/superadmin/register一样简单。现在,我认为这条路线很容易被某人猜测并注册。任何入侵者都可以这样做并以管理员身份访问我的系统。无论如何保持这条路线安全吗?

PS:我是laravel的新手。

感谢任何帮助。谢谢

1 个答案:

答案 0 :(得分:2)

我会做什么:

1-生成一些令牌(类似于98q4w94qw98d1q98w4e9x)并将其存储在桌面上的数据库中,仅用于存储管理员注册令牌。

2-发送带有此令牌的网址给您的朋友,它看起来像这样:

myGames/superadmin/register/98q4w94qw98d1q98w4e9x

3-当用户进入此页面时,获取令牌并检查它是否存在于数据库中。

4.1 - 如果令牌存在,允许用户通过注册进行处理(然后从数据库中删除不再需要的令牌)。

4.2 - 如果令牌不存在,则将此人重定向到其他地方或显示“无效注册令牌”或其他内容的消息。

这样,即使有人猜到这个网址,他们也无法注册,因为他们没有令牌。

这就是您的路线:

Route::get('myGames/superadmin/register/{token?}', function($token = null){
    if (!$token){
        abort(403, "Only users with a token may enter.");
    }
    if(DB::table('admin_tokens')->where('token', $token)->count() === 0){
        abort(403, "It seems like your token is not valid.");
    }
    else{
        return view('admin.register');
    }
});