Как применить фильтры безопасности к формам загрузки файлов в wp Wordpress - ForminatorPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Гость
 Как применить фильтры безопасности к формам загрузки файлов в wp Wordpress - Forminator

Сообщение Гость »


`Я пытаюсь ограничить/заблокировать доступ к файлам некоторых типов для конкретной страницы.
Я использую плагины Forminator для создания форм, в которых есть функция определения того, какие типы файлов могут для загрузки используйте типы mime. (Хотя при необходимости я мог бы использовать любой другой)
Проблема: у него есть некоторые ограничения. это всего лишь блокировка '

Код: Выделить всё

dummy.php
', например, если пользователь попытается переименовать PDF-файл, например, этот пользователь сможет его загрузить:

Код: Выделить всё

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]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»