python-django
想测试下自己的有没有漏洞 发现只要登录失败 返回的页面根本不带查询信息 是不是相当于没有这个漏洞? 成功和两种失败页面如下
比如登录页面 点击登录后跳转到logined页面(请别吐槽为什么不写成loginned pycharm怎么也不给过这个拼写 既然都不给过 我也懒得改了 直接忽略拼写提示...)
处理函数大概是这样的 传给网页的数据是个字典 至少含有'result'项(logined.html根据result生成不同的登陆结果页面 成功则跳转主页 失败则根据result提示原因)
def logined(request):
username = request.POST.get('username')
password = request.POST.get('password')
user = User.objects.filter(username__exact=username)
if len(user) != 1:
result = 'username failed'
data = {
'result': result,
}
else:
if password != User.objects.get(username__exact=username).password:
result = 'password failed'
data = {
'result': result,
}
else:
result = 'ok'
request.session['user'] = {
'username': user[0].username,
'email': user[0].email,
'img': str(user[0].img),
}
data = {
'result': result,
'username': user[0].username,
'email': user[0].email,
}
return render(request, 'personal/logined.html', data)
加密储存的事 在做了在做了(咕咕咕
你用了Django 的ORM基本就没有sql注入的问题。
sql注入一般来说是手写sql才会出现。
你这里代码的逻辑没有什么问题。就是有一两个地方比较啰嗦
|