为什么正斜杠转换为连字符/破折号



我知道我们应该替换正斜杠,例如分解路径并使用数组的最后一个元素作为文件名。

但是为什么福特沃德斜杠在使用时会转换为连字符/破折号

header('Content-Disposition: attachment; filename="'.$local_file.'"'); 

$local_file/file

下载的文件文件名为 -file

这种行为是否在某处描述过?

RFC文件没有提到这一点,还是吗?http://www.faqs.org/rfcs/rfc2183.html

这是

特定于客户端的。大多数浏览器只会删除任何路径/前缀。但是转码正斜杠也同样合理。

在 RFC2616, http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html, 第 19.5.1 节中提到了它

接收用户代理不应尊重 filename-parm 参数中存在的任何目录路径信息,这是目前唯一被认为适用于 HTTP 实现的参数。文件名应仅被视为终端组件。
网络工作组,R. Fielding等人,(c)互联网协会(1999年)

当然,基本原理是,出于安全原因,不应将HTTP有效负载提取到任何预定义的路径。

相关内容

  • 没有找到相关文章

最新更新