【发布时间】:2010-11-27 03:01:31
【问题描述】:
我有一个用户可以上传文件的表单,我想为文件命名为[id]_[lastname]_[firstname].pdf。名称是用户输入的,我怕他们输入带有斜线的东西。否则,如果名字是 john/hahaimajerk,则类似 $path = $dir.$filename 的内容可能会导致 $path = 'uploads/2_smith_john/hahaimajerk.pdf'。
我真的不想强迫用户将他们的名字限制在任何东西上;只要我能说出原始名称,我不介意在文件名中稍微更改它们的名称。我需要逃脱哪些角色,或者有其他方法可以做到这一点?还是……我只使用mysql_real_escape_string?
【问题讨论】:
-
正如 Alex N. 所说,escapeshellarg 是您正在寻找的内容,但我强烈考虑分配已知安全的文件名并通过您的数据库将它们映射到用户友好的文件名。跨度>
-
更糟糕的是:想象“/../../../etc/passwd”的名字
-
一般来说“.”和“..”也很重要。
标签: php