一 文件执行SQL
1 执行下载SQL
具体模块 from urllib.request import urlretrieve
具体实现逻辑
sql_url = request.json['fileurl'].encode("utf-8")->前端传递整个url下载连接(包含文件命)
order_filepath="/download"->本地保存文件路径
file_name = sql_url.split('/')[-1]->本地保存文件名
file_path = "%s%s"%(order_filepath, file_name)->进行下载保存
2 判断文件内容-提交时进行判断
1 正则匹配是否有非DML关键字
re.search('(?i)(replace|alert|drop,truncate,select)s+.+',sqltext)
2 计算文件大小,超过阈值大小不予执行(限制一次执行的文本行数)
3 检查文件编码是否市utf8
coding.file_encoding(file_path)
3 打开文件内容-inception检测
4 打开文件内容-inception执行