mirror of
https://0xacab.org/jvoisin/mat2-web.git
synced 2025-07-31 02:09:09 -04:00
Resolve "Fuzzing Errors /api/upload"
This commit is contained in:
parent
9157dee69f
commit
853ace7d83
5 changed files with 46 additions and 5 deletions
|
@ -53,8 +53,12 @@ def upload_file():
|
|||
if not uploaded_file.filename:
|
||||
flash('No selected file')
|
||||
return redirect(request.url)
|
||||
try:
|
||||
filename, filepath = utils.save_file(uploaded_file, current_app.config['UPLOAD_FOLDER'])
|
||||
except ValueError:
|
||||
flash('Invalid Filename')
|
||||
return redirect(request.url)
|
||||
|
||||
filename, filepath = utils.save_file(uploaded_file, current_app.config['UPLOAD_FOLDER'])
|
||||
parser, mime = utils.get_file_parser(filepath)
|
||||
|
||||
if parser is None:
|
||||
|
|
|
@ -28,11 +28,15 @@ class APIUpload(Resource):
|
|||
args = req_parser.parse_args()
|
||||
try:
|
||||
file_data = base64.b64decode(args['file'])
|
||||
except binascii.Error as err:
|
||||
abort(400, message='Failed decoding file: ' + str(err))
|
||||
except (binascii.Error, ValueError):
|
||||
abort(400, message='Failed decoding file')
|
||||
|
||||
file = FileStorage(stream=io.BytesIO(file_data), filename=args['file_name'])
|
||||
filename, filepath = utils.save_file(file, self.upload_folder)
|
||||
try:
|
||||
filename, filepath = utils.save_file(file, self.upload_folder)
|
||||
except ValueError:
|
||||
abort(400, message='Invalid Filename')
|
||||
|
||||
parser, mime = utils.get_file_parser(filepath)
|
||||
|
||||
if parser is None:
|
||||
|
|
|
@ -65,6 +65,8 @@ def get_supported_extensions():
|
|||
|
||||
def save_file(file, upload_folder):
|
||||
filename = secure_filename(file.filename)
|
||||
if not filename:
|
||||
raise ValueError('Invalid Filename')
|
||||
filepath = os.path.join(upload_folder, filename)
|
||||
file.save(os.path.join(filepath))
|
||||
return filename, filepath
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue