在写好flask 服务之後,可能会将服务给弱点分析软件进行扫描,
之後会显示出一些高风险的漏洞,
而在开始寻找如何修补这些资安风险的同时,我发现程序方面的说明文章不是很多。
後来寻找到不错的说明影片以及他们的投影片:
首先想到解决方法是,要写入攻击就会在form里面写入代码,
像是在sql语法中就会写入 ';'这样的字串,
而针对mongodb的攻击可能会含有'$'的字串。
因此我希望拿到的字串资讯都先替代调这些字串:
def check_inject_value(pass_value):
pass_value.replace("'", "")
pass_value.replace('"', "")
pass_value.replace('$', "")
pass_value.replace(';', "")
pass_value.replace('/', "")
return pass_value
但是弱点扫描程序还是持续有高风险状态漏洞,
因此在投影片中建议采取的对策是使用db orm 套件,
像是Flask-SQLAlchemy或是flask_pymongo。
一般写法可以看官网的介绍:
https://flask-sqlalchemy.palletsprojects.com/en/2.x/
https://flask-pymongo.readthedocs.io/en/latest/
这里使用flask_pymongo在blue_print中的使用方法:
from flask import Flask, request, Blueprint,jsonify,current_app
from flask_pymongo import PyMongo
hello_blueprint = Blueprint('hello_blueprint', __name__)
@hello_blueprint.route('/hello', methods=["POST"])
def Auther_Letter_first():
with current_app.app_context():
current_app.config["MONGO_URI"] = f"mongodb://localhost:30300/hello"
orm_mongo = PyMongo(current_app)
hellodoc = orm_mongo.db.hellohello.find_one()
return jsonify({"result": 1,"content": hellodoc })
从hello这个DB中的hellohello这个collection,寻找第一笔资料。
而在采用了orm套件之後,风险漏洞也消失了,
虽然我不知道弱点扫描的逻辑是甚麽,
明明在不同分支写的语法都一样,
有的地方就有风险,有的地方没有,
但是多一层处理能使服务更安全。
标签图片的方法与实作 - Day 12 资料增量 (Data Augmentation) 的部份因为...
有一些模型像是逻辑回归和决策树,背後运作的原因相当简单明了,容易解释模型是如何得出其输出的。但随着更...
https://github.com/oscarsun72/TextForCtext.git Tex...
嵌套元件(Nesting Components),在 Vue.js 中是很普遍的用法,可以在父元件赋...
for-loop 在 C/C++ 语言中,我们经常用到 for 回圈语句,但在 Verilog 中 ...