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 safe_fixtable(Table, Fix)用法及代码示例
- erlang safeInflate(Z, Data)用法及代码示例
- erlang sin用法及代码示例
- erlang str用法及代码示例
- erlang substr用法及代码示例
- erlang sort用法及代码示例
- erlang sublist用法及代码示例
- erlang sum用法及代码示例
- erlang split_binary用法及代码示例
- erlang self用法及代码示例
- erlang spawn用法及代码示例
- erlang spawn on Node用法及代码示例
- erlang spawnlink用法及代码示例
- erlang select(Table, MatchSpec)用法及代码示例
- erlang select_replace(Table, MatchSpec)用法及代码示例
- erlang select_reverse(Continuation)用法及代码示例
- erlang split(Filename)用法及代码示例
- erlang setelement(Index, Tuple1, Value)用法及代码示例
- erlang size(Item)用法及代码示例
- erlang spawn(Module, Function, Args)用法及代码示例
- erlang split_binary(Bin, Pos)用法及代码示例
- erlang statistics(Item :: garbage_collection)用法及代码示例
- erlang statistics(Item :: microstate_accounting)用法及代码示例
- erlang statistics(Item :: reductions)用法及代码示例
注:本文由纯净天空筛选整理自erlang.org大神的英文原创作品 safe_relative_path(Filename, Cwd) -> unsafe | SafeFilename。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。