`Я пытаюсь ограничить/заблокировать доступ к файлам некоторых типов для конкретной страницы.
Я использую плагины Forminator для создания форм, в которых есть функция определения того, какие типы файлов могут для загрузки используйте типы mime. (Хотя при необходимости я мог бы использовать любой другой)
Проблема: у него есть некоторые ограничения. это всего лишь блокировка '
Код: Выделить всё
dummy.php
Код: Выделить всё
RVQkOcVI8iMC-shell.php00.pdf
wd8n5XJfRo8a-dummy.pdf
yAP4SeoBIeV8-shell.pdf
cv4MRpuxXQuu-dummy.php00.pdf
Я связался с ИИ, который посоветовал мне сделать что-то подобное, включая шаблон регулярного выражения или отредактировав .htaccess, но это не сработало.
Код: Выделить всё
Order Allow,Deny
Deny from all
function custom_upload_check($file) {
// Check if the file name contains invalid patterns
$invalid_patterns = array(
'/-shell\.php[0-9]*\.pdf$/i',
'/-dummy\.pdf$/i',
'/-shell\.phtml[0-9]*\.docx$/i',
'/-dummy\.php[0-9]*\.doc$/i'
);
foreach ($invalid_patterns as $pattern) {
if (preg_match($pattern, $file['name'])) {
$file['error'] = 'Invalid file name';
break;
}
}
return $file;
}
add_filter('forminator_upload_file_prefilter', 'custom_upload_check');
Код: Выделить всё
function sanitize_join_us_uploads($file) {
// Get the file extension
$ext = pathinfo($file['name'], PATHINFO_EXTENSION);
// Check if the file extension is allowed
$allowed_types = array('pdf', 'doc', 'docx');
if (!in_array(strtolower($ext), $allowed_types)) {
$file['error'] = sprintf(__('Sorry, you cannot upload %s files for this path.', 'your-textdomain'), $ext);
return $file;
}
// Check for disguised PHP files
$file_content = file_get_contents($file['tmp_name']);
if (strpos($file_content, '
Источник: [url]https://stackoverflow.com/questions/78154533/how-to-apply-security-filters-for-file-uploads-forms-in-wp-wordpress-forminato[/url]