我正在尝试使用flask创建一个登录页面,当他们输入正确的凭据时,他们会通过,但即使他们输入了错误的密码和用户名,他们也会通过!
我的表单index.html
<form method="post" action="/" role="login">
<h3>ADMIN LOGIN</h3>
<div class="form-group">
<input type="text" name="username" required class="form-control" placeholder="Enter Username" />
<span class="glyphicon glyphicon-user"></span>
</div>
<div class="form-group">
<input type="password" name="password" required class="form-control" placeholder="Enter password" />
<span class="glyphicon glyphicon-lock"></span>
</div>
<button type="submit" name="go" class="btn btn-primary btn-block">Login Now</button>
<a href="#">Reset password</a>
</form>
我的 identityFace.py 是我的主要
from flask import Flask, session, render_template, request, redirect, g, url_for
import os
import model as dbHandler
app = Flask(__name__)
app.secret_key = 'development key'
@app.route('/', methods=['POST', 'GET'])
def home():
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
# dbHandler.insertUser(username, password)
users = dbHandler.retrieveUsers()
return render_template('home.html', users=users)
else:
return render_template('index.html')
if __name__ == '__main__':
app.run()
我的 model.py 是
import sqlite3 as sql
def retrieveUsers():
con = sql.connect("ExamsFaceId.db")
cur = con.cursor()
cur.execute("SELECT username, password FROM users")
users = cur.fetchall()
con.close()
return users
它不会返回错误。
答案 0 :(得分:0)
您确实想要查询数据库中的所有用户。您没有在任何地方验证输入的信息
尝试对数据库实施自己的userExists(username, password)
函数。
例如,
'SELECT username WHERE username=%s AND password=%s'
然后return cur.rowcount > 0
返回Flask,检查if not db.userExists(username, password)
,然后redirect()
返回登录。
或者,我认为您应该真正使用Flask-Admin + Flask-Security plugins,因为它会为您提供此功能并修复您的纯文本密码问题。