40 lines
1.1 KiB
PHP
Executable File
40 lines
1.1 KiB
PHP
Executable File
<?php
|
|
if (!isset($_POST['filename'])||
|
|
!isset($_POST['filehash']) ||
|
|
!isset($_POST['filepath']) ||
|
|
!preg_match('`[a-z0-9]+`', $_POST['filehash']) ||
|
|
preg_match('`\.\.`', $_POST['filename'])) {
|
|
exit('1');
|
|
}
|
|
$salt = '%t$qPP';
|
|
if (hash('sha256', $_POST['filename'] . $salt) !== $_POST['filehash']) {
|
|
exit('2');
|
|
}
|
|
if (!preg_match('`^[A-Za-z0-9\s\\\/_-]+$`', $_POST['filepath'])) {
|
|
// echo $_POST['filepath'] . "\n";
|
|
exit('WRONG FILE PATH');
|
|
}
|
|
|
|
$filepath = preg_replace('`(.*)json-forms`', '../json-forms', $_POST['filepath']);
|
|
$filepath = rtrim($filepath, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR;
|
|
$filepath = str_replace(array('/', '\\'), DIRECTORY_SEPARATOR, $filepath);
|
|
|
|
if (!file_exists(($filepath . $_POST['filename']))) {
|
|
exit('3');
|
|
}
|
|
$out = array();
|
|
|
|
if (unlink($filepath . $_POST['filename'])) {
|
|
$out = array(
|
|
'status' => 'success',
|
|
'msg' => 'The form has been deleted'
|
|
);
|
|
} else {
|
|
$out = array(
|
|
'status' => 'danger',
|
|
'msg' => 'Failed to delete the form file.<br>Try to increase your CHMOD'
|
|
);
|
|
}
|
|
|
|
echo json_encode($out);
|