基于cookie的身份验证PHP,我在PHP中使用Django用户身份验证。这种基于cookie的身份验证方案是否安全?...

我有一个用PHP编写的站点,正在使用Python和Django添加新特性。其中一部分是使用标准的Django身份验证出资人授权包裹。在

一旦有人使用我们的Django设置登录,当他们来到PHP端时,我需要看到他们已经登录并使用数据库中的用户信息)。在

使用这个Django sessionid cookie值从PHP获取用户id并证明Django会话id有效的最佳方法是什么?在

我的计划是在登录时对Django会话id、Django密钥和用户id进行散列。该值将被设置为附加cookie。然后在PHP中,我将提取用户id,对其和密钥加上Django sessionid cookie值进行哈希,并比较它们是否匹配。在

我扩展了auth login视图,以便在成功验证用户后设置额外的cookie。而不是HttpResponseRedirect,它将返回HttpResponseSetAuthCookieAndRedirect。在

httpresponsesetauthCookie和direct获取请求.session.session_id用户的用户名作为参数。在class HttpResponseSetAuthCookieAndRedirect(HttpResponse):

""" a cookie enhanced version of HttpResponseRedirect """

status_code = 302

def __init__(self, user_id, session_id, redirect_to):

HttpResponse.__init__(self)

self['Location'] = iri_to_uri(redirect_to)

my_hash=hashlib.sha512('{0}|-|{1}|-|{2}'.format(settings.SECRET_KEY,user_id,session_id)).hexdigest()

cookie_hash="{0}::{1}".format(user_id,my_hash[:64])

self.set_cookie('check', value=cookie_hash, max_age=172800, path='/', domain=None)

这将设置一个cookie,它是会话id、我的Django密钥和与会话id匹配的已验证用户id的哈希值

在PHP中

^{pr2}$

到目前为止,这是有效的。在

这个主意靠谱吗?在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值