Flask-SQLAlchemy 怎么防止sql 注入 写一个例子给我
时间: 2023-05-14 07:05:55 浏览: 175
当使用 Flask-SQLAlchemy 时,可以使用参数化查询来防止 SQL 注入攻击。下面是一个使用参数化查询的 Flask-SQLAlchemy 代码示例:
```python
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///example.db'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
password = db.Column(db.String(80), nullable=False)
@app.route('/login')
def login():
username = request.args.get('username')
password = request.args.get('password')
user = User.query.filter_by(username=username, password=password).first()
if user:
return 'Login success'
else:
return 'Login failed'
if __name__ == '__main__':
app.run()
```
在上面的代码中,我们使用了参数化查询来防止 SQL 注入攻击。在查询中,我们使用了 `filter_by` 方法来过滤用户名和密码,这个方法会自动进行参数化查询,从而防止 SQL 注入攻击。
阅读全文