當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


erlang safe_relative_path(Filename, Cwd)用法及代碼示例


safe_relative_path(Filename, Cwd) -> unsafe | SafeFilename
OTP 23.0
類型:
Filename = Cwd = SafeFilename = filename_all()

通過消除 ".." 和 "." 組件來清理相對路徑,以防止目錄遍曆攻擊。或者返回清理後的路徑名,或者返回原子 unsafe(如果路徑不安全)。在以下情況下,該路徑被認為是不安全的:

  • 該路徑不是相對的。

  • ".." 組件將爬到相對路徑的根部上方。

  • 路徑中的符號鏈接指向相對路徑的根目錄之上。

例子:

1> {ok, Cwd} = file:get_cwd().
...
2> filelib:safe_relative_path("dir/sub_dir/..", Cwd).
"dir"
3> filelib:safe_relative_path("dir/..", Cwd).
[]
4> filelib:safe_relative_path("dir/../..", Cwd).
unsafe
5> filelib:safe_relative_path("/abs/path", Cwd).
unsafe

相關用法


注:本文由純淨天空篩選整理自erlang.org大神的英文原創作品 safe_relative_path(Filename, Cwd) -> unsafe | SafeFilename。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。