У меня есть форма, в которой пользователи могут загружать файлы, и я хотел бы назвать файл чем-то по строкам [id]_[lastname]_[firstname].pdf
. Имя вводится пользователем, и я боюсь, что они вводят что-то с косой чертой. В противном случае что-то вроде $path = $dir.$filename
может привести к $path = 'uploads/2_smith_john/hahaimajerk.pdf'
, если первое имя - john/hahaimajerk
.PHP escape user input для имени файла
Я действительно не хочу принуждать пользователей ограничивать свои имена чем-либо; Я не возражаю изменить их имена немного в имени файла, пока я могу указать исходное имя. Какие персонажи мне нужно бежать, или есть ли другой способ сделать это? Или ... я просто использую mysql_real_escape_string
?
Как говорит Алекс Н., escapeshellarg является то, что вы ищете, но я бы сильно рассмотреть вопрос о выделении известно, что безопасные имена файлов и отображение их через вас базу данных, потенциально дружественные имена файлов , – 2010-11-27 03:09:16
хуже: представьте себе имя «/../../../etc/passwd» – Greg 2012-02-03 16:55:55
Вообще говоря, «.» и ".." также важны. – asmecher 2013-09-20 18:33:30