吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1327|回复: 9
收起左侧

[讨论] django session会话验证身份 被 python requests库轻松绕过???

[复制链接]
Cool_Breeze 发表于 2021-11-27 18:30
django 登录验证视图
[Python] 纯文本查看 复制代码
def login_view(request):
    
    user = None
    if request.method == "GET":
        # 漏洞
        print(request.session['username'])
        if request.session.get('username') and request.session.get('userid'):
            return HttpResponse("已经登录")

        return render(request, "user/login.html")
    elif request.method == "POST":
        username = request.POST.get('username', None)
        password = request.POST.get('password', None)
        
        try:
            user = User.objects.get(username=username)
        except Exception as err:
            print(f'--login user err:{err}')
            return HttpResponse('用户名或者密码不匹配')
        m = hashlib.md5()
        m.update(password.encode())
        if user.password == m.hexdigest():
            request.session['username'] = username
            request.session['userid'] = user.id
        else:
            return HttpResponse('用户名或者密码不匹配')
        
        resp = HttpResponse('登录成功')
        if 'remember' in request.POST:
            resp.set_cookie('username', username, 60*60*24*3)
            resp.set_cookie('userid', user.id, 60*60*24*3)
        
        return resp


python requests 库获取session 值后,轻松突破这个验证!!!代码如下:
[Python] 纯文本查看 复制代码
data = {"sessionid" : "ontpw9i4q6wh361b2lksm3lcz6hix92q"}
res = requests.get('http://127.0.0.1:8008/user/login', cookies = data)

print(res.content.decode())
print(res.cookies)


求大佬讲讲可靠方法!

免费评分

参与人数 1热心值 +1 收起 理由
tutu75738 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| Cool_Breeze 发表于 2021-11-27 18:31
还是我打开方式错了,还是理解错了。新手学 web
 楼主| Cool_Breeze 发表于 2021-11-27 18:38
带色的小马甲 发表于 2021-11-27 22:07
这样写session就是唯一的身份标识,带session访问肯定要显示登陆成功才正常,不明白你想问的是什么?
如果是为了防止非法爬虫,可以设置session的到期时间,写一个限制访问频率的中间件
萋小磊 发表于 2021-11-27 22:59
如果事jwt 也一样有这个问题
你还可以对 Session Create IP 判断.
 楼主| Cool_Breeze 发表于 2021-11-28 09:06
带色的小马甲 发表于 2021-11-27 22:07
这样写session就是唯一的身份标识,带session访问肯定要显示登陆成功才正常,不明白你想问的是什么?
如果 ...

明白了。感谢
 楼主| Cool_Breeze 发表于 2021-11-28 09:11
萋小磊 发表于 2021-11-27 22:59
如果事jwt 也一样有这个问题
你还可以对 Session Create IP 判断.

谢谢,这个方法也挺好的,
yang1 发表于 2021-11-28 10:02
这方法可以啊
tutu75738 发表于 2021-11-28 22:49
明白了,感谢分享
wadedong 发表于 2021-11-29 11:49
如果  Session 是长期有效那 确实是有这个问题 。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 18:34

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表