Heroku上托管的简单flask应用程序的身份验证

2024-04-18 19:31:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个简单的web应用程序供公司使用。我没有创建单独的身份验证方法,而是使用请求库将凭证输入发送到我的公司网站的html表单,并检查请求状态代码是否为200。在

问题1:与建立单独的身份验证(如Flask登录)相比,这是一种安全的方法吗?我从一些阅读中了解到,通常的做法是获取密码的哈希值,并将其与数据库中现有条目的哈希值进行比较。在

提前谢谢你。在

from flask import Flask, make_response, request, render_template, url_for
from flask_bootstrap import Bootstrap
import requests
from requests.auth import HTTPBasicAuth

app = Flask(__name__)
bootstrap = Bootstrap(app)    

@app.route('/', methods=["GET", "POST"])
    def login():
      if request.method == 'GET':
        return render_template('log.html')
      elif request.method == 'POST':
        username = request.form['username']
        password = request.form['password']
        r = requests.get('MY COMPANY WEBSITE', auth=HTTPBasicAuth(username, password))
        if r.status_code == '200':
          return redirect(url_for('index'))
        elif r.status_code != '200':
          print(r)
          return render_template('login_fail.html', username=username,password=password)

Tags: 方法fromimport身份验证appflaskreturnrequest
1条回答
网友
1楼 · 发布于 2024-04-18 19:31:12

恐怕这是一种非常糟糕的用户身份验证方法。在

这种方法不具有任何安全性,并且会给系统带来很多漏洞。在

此外,您还必须为每个请求编写此逻辑,使其变得很麻烦,并减慢整个过程的速度(尽管这不是太多)。在

有几种方法可以使用: 1使用算法创建一个身份验证令牌,并在请求请求的基础上继续传递该令牌。这里的基本前提是auth令牌就像一个密钥,它一直延伸到前端,以确保密钥保存在安全的地方。在编写第三方可以使用并需要API级别访问的服务时,Auth令牌是最好的情况 2使用Flask login并使用Flask的userloader函数在用户登录时对其进行身份验证。记住在服务器上散列密码。这将提高服务器的安全配置文件 三。在flask登录中使用requestloader。这与(1)相似,你不必做很多重的举重

希望这有帮助

相关问题 更多 >