57 lines
2.2 KiB
Plaintext
57 lines
2.2 KiB
Plaintext
from PDAPI import *
|
|
|
|
|
|
__metadata__ = {
|
|
"methods": ["POST"],
|
|
"blueprint": "SVE",
|
|
"permission": 0.0,
|
|
"attributes": [],
|
|
"limit": "1 per second",
|
|
"json": [
|
|
{"Name": "sveId", "Type": "str", "MaxLen": 14},
|
|
{"Name": "vulnTitle", "Type": "str", "MaxLen": 256},
|
|
{"Name": "vulnStatus", "Type": "str", "MaxLen": 102400},
|
|
{"Name": "vulnDescription", "Type": "str", "MaxLen": 102400},
|
|
{"Name": "products", "Type": "str", "MaxLen": 102400},
|
|
{"Name": "cvss", "Type": "str", "MaxLen": 102400},
|
|
{"Name": "solutions", "Type": "str", "MaxLen": 102400},
|
|
{"Name": "references", "Type": "str", "MaxLen": 102400},
|
|
{"Name": "relatedSves", "Type": "str", "MaxLen": 102400}
|
|
]
|
|
}
|
|
def HandleRequest():
|
|
SVE: SVEBase
|
|
sveId = flask.request.json["sveId"]
|
|
vulnTitle = flask.request.json["vulnTitle"]
|
|
vulnStatus = flask.request.json["vulnStatus"]
|
|
vulnDescription = flask.request.json["vulnDescription"]
|
|
products = flask.request.json["products"]
|
|
cvss = flask.request.json["cvss"]
|
|
solutions = flask.request.json["solutions"]
|
|
references = flask.request.json["references"]
|
|
relatedSves = flask.request.json["relatedSves"]
|
|
|
|
if not (sveId := PreSVE(sveId)): return flask.jsonify({"error": "sveId not format", "code": 1})
|
|
if not sveId.isdigit() or len(sveId) % 2 != 0: return flask.jsonify({"error": "sveId not %2 number", "code": 1})
|
|
if not (SVE := SVEBase.query.filter(SVEBase.SVEID == Get16toBytes(sveId)).first()):
|
|
SVE = SVEBase()
|
|
SVE.SVEID = Get16toBytes(sveId)
|
|
SVE.SVECreateTime = TimeFormatInt()
|
|
|
|
SVE.SVEName = vulnTitle
|
|
SVE.SVEDescription = vulnDescription
|
|
SVE.SVELastModified = TimeFormatInt()
|
|
SVE.SVEVulnStatus = vulnStatus
|
|
SVE.SVEProducts = products
|
|
SVE.SVECvss = cvss
|
|
SVE.SVESolutions = solutions
|
|
SVE.SVEReferences = references
|
|
SVE.SVERelatedSves = relatedSves
|
|
try:
|
|
db.session.add(SVE)
|
|
db.session.commit()
|
|
return {"code": 0, "msg": "Success"}
|
|
except:
|
|
print(traceback.format_exc())
|
|
db.session.rollback()
|
|
return {"code": 1, "msg": "Failed Commit SQL"} |