"Самая важная гарантия - хранить загруженные файлы там, где пользователи не могут получить к ним прямой доступ по прямому URL-адресу. Это можно сделать путем хранения загруженных файлов за пределами корневого веб-каталога или настройки запрета доступа к веб-серверу.каталог для загрузки.
Еще одна важная мера безопасности - использование сгенерированных системой имен файлов вместо имен, предоставляемых пользователями при хранении файлов в файловой системе. Это предотвратит атаки локальных включений файлов, а также приведет к любымПользователь не может манипулировать именем файла "
Я понимаю это, однако - я предоставляю пользователям Wordpress возможность загружать файлы в каталог с изображениями, поэтому я не могу выполнить ни одного из этих действий.Файлы должны перейти в каталог images и получить имя по своему выбору.
Вот что я делаю до сих пор:
1) Разрешить только файлы с именами с одним расширением, и расширение должно быть из списка доверенных.
2) Допускается только алфавитно-цифровая, пробелы и подчеркивания в первой части имени и менее 30 символов.
3) Не разрешать файлыс именем .htaccess для загрузки
4) Только для доступа администратора к загрузке и использования wp nonces
5) Проверка типа MIME
6) Проверка размера файла
Некоторые вопросы, которые у меня есть:
Если я отрицаю загрузку какого-либо файла с именем .htaccess и запрещаю любой файл с расширением .php, разве это не должно помешать кому-либо загрузить файл изображения с.php код встроен?
Я понимаю, что могу использовать php для копирования изображений без вредоносного кода, однако я планирую разрешить загрузку файлов .ttf и .css.
Я мог сканировать этоse файлы с php для скриптовых вопросительных знаков и т. д. Рекомендуется ли это?Если так, что я буду искать помимо этого?
Если я разрешаю только администраторам доступ и использую одноразовые номера и описанную выше методологию, насколько безопасен мой код и другие их действия, которые я должен делать?
Любая помощь очень ценится!