对于基本身份验证,您可以使用通过url作为params传递的密钥吗?

时间:2017-06-28 17:55:36

标签: ruby-on-rails security authentication

不说任何超敏感或私密的东西。我有一种情况,我只想限制访问,并打算使用Rails' authenticate_or_request_with_http_basic方法要求在页面上输入密码。然后我意识到,我也可以通过在URL上添加一个额外的参数并将其与我定义的任何参数进行比较来做到这一点。如下所示:

www.mypage.com?secret=password

def page
    if params[:secret] == ENV["secret"]
        ...
    end
end

从安全角度来看,为什么这不如Rails'方法? Rails'是什么增加了安全性?方法提供?

1 个答案:

答案 0 :(得分:0)

安全级别几乎与基本身份验证相同,除了两个字段,您只需要一个。

基本身份验证不会为标头中传递的用户名和密码提供机密性,除非您正在通过HTTPS工作,无论如何都应该这样做,并且也会通过HTTPS加密。

我唯一要说的是网址可能会在浏览器历史记录中显示,并会显示在地址栏中。所以我认为这样安全性较低,因为如果有人可以访问您的浏览器历史记录,他们就可以获得密钥。

我想你只需要决定你对它的关心程度。

我将补充说,Devise是一个很好的Gem,用于管理身份验证(标准类型,转到解决方案),并且有许多很棒的插件可以在用户级别上管理权限。虽然,我觉得你想要的东西可能有些过分。