Work: Security: Sanitize file name that could import document with special characters - refs BT#22273

pull/5961/head
Angel Fernando Quiroz Campos 9 months ago
parent 3075eeba7a
commit 7212fb2a1e
No known key found for this signature in database
GPG Key ID: B284841AE3E562CD
  1. 13
      main/inc/ajax/document.ajax.php
  2. 15
      main/inc/ajax/dropbox.ajax.php
  3. 10
      main/inc/ajax/work.ajax.php
  4. 17
      main/inc/lib/fileUpload.lib.php

@ -153,17 +153,8 @@ switch ($action) {
}
$resultList = [];
foreach ($fileList as $file) {
if (isset($_REQUEST['chunkAction']) && 'done' === $_REQUEST['chunkAction']) {
// to rename and move the finished file
$tmpFile = disable_dangerous_file(
api_replace_dangerous_char($file['name'])
);
$chunkedFile = api_get_path(SYS_ARCHIVE_PATH).$tmpFile;
$file['tmp_name'] = $chunkedFile;
$file['size'] = filesize($chunkedFile);
$file['copy_file'] = true;
}
foreach ($fileList as $fileInfo) {
$file = processChunkedFile($fileInfo);
$globalFile = [];
$globalFile['files'] = $file;

@ -79,19 +79,8 @@ switch ($action) {
}
$resultList = [];
foreach ($fileList as $file) {
if (isset($_REQUEST['chunkAction']) && 'done' === $_REQUEST['chunkAction']) {
// to rename and move the finished file
$tmpFile = disable_dangerous_file(
api_replace_dangerous_char($file['name'])
);
// to rename and move the finished file
$chunkedFile = api_get_path(SYS_ARCHIVE_PATH).$tmpFile;
$file['tmp_name'] = $chunkedFile;
$file['size'] = filesize($chunkedFile);
$file['copy_file'] = true;
}
foreach ($fileList as $fileInfo) {
$file = processChunkedFile($fileInfo);
$globalFile = [];
$globalFile['files'] = $file;

@ -120,14 +120,8 @@ switch ($action) {
}
$resultList = [];
foreach ($fileList as $file) {
if (isset($_REQUEST['chunkAction']) && 'done' === $_REQUEST['chunkAction']) {
// to rename and move the finished file
$chunkedFile = api_get_path(SYS_ARCHIVE_PATH).$file['name'];
$file['tmp_name'] = $chunkedFile;
$file['size'] = filesize($chunkedFile);
$file['copy_file'] = true;
}
foreach ($fileList as $fileInfo) {
$file = processChunkedFile($fileInfo);
$globalFile = [];
$globalFile['files'] = $file;

@ -2255,3 +2255,20 @@ function getFileUploadSizeLimitForTeacher()
return $size;
}
function processChunkedFile(array $file): array
{
if (isset($_REQUEST['chunkAction']) && 'done' === $_REQUEST['chunkAction']) {
// to rename and move the finished file
$tmpFile = disable_dangerous_file(
api_replace_dangerous_char($file['name'])
);
$chunkedFile = api_get_path(SYS_ARCHIVE_PATH) . $tmpFile;
$file['tmp_name'] = $chunkedFile;
$file['size'] = filesize($chunkedFile);
$file['copy_file'] = true;
}
return $file;
}

Loading…
Cancel
Save