Поскольку имя файла, установленное в значении name
, основано на имени файла, предоставленном пользователем, а также потому, что вы не выполняете какую-либо визуальную дезинфекцию содержимого или имени, пользователь может загрузить файл, который является исполняемым apache и передать его имя:
../../../wickedevilnaughtyfile
и получить его в корневом каталоге хост-системы или в таком же скверном месте, которого он не принадлежит, и он может быть выполнен из веб-браузера, поскольку http-сервер (apache или whatevs) имеет к нему доступ, поскольку он создал файл.
Это не фактический ответ, но потребовал в комментариях, угрозы безопасности, нужно больше, чем 600 символов, чтобы объяснить иногда
BTW, если я пропустил что-нибудь в этом несколько скупых объяснений или что-то просто неправильно, не стесняйтесь редактировать и подписывать свое имя прямо в ответе.
Do ** NOT ** используйте этот код. Вы открываете свою систему для полного компрометации, позволяя любому пользователю загружать файл, который им нужен на вашем сервере. Что касается вашего фактического вопроса, '$ var = 'img /'. $ _FILES [и др .... '. –
@MarcB Из-за '[$ key]'? –
@MarcB Пожалуйста, предоставьте ему дополнительную информацию при упоминании проблем безопасности –