diff options
author | Björn Gustavsson <[email protected]> | 2017-02-24 10:09:21 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2017-02-24 10:09:21 +0100 |
commit | 133645d9a24e6a6d7123370ef332ca478598040e (patch) | |
tree | 7843f65b743222cc027090f2b94f8227f4d4a5ee /lib/stdlib/doc | |
parent | 6e687ee0c10d1c680d214baffcef7631eef52bc3 (diff) | |
parent | 8c7a68f3808a8d52f5cfc297a249ca4ef2480238 (diff) | |
download | otp-133645d9a24e6a6d7123370ef332ca478598040e.tar.gz otp-133645d9a24e6a6d7123370ef332ca478598040e.tar.bz2 otp-133645d9a24e6a6d7123370ef332ca478598040e.zip |
Merge pull request #1350 from bjorng/bjorn/stdlib/safe-relative-path/OTP-14215
filename: Add safe_relative_path/1
OTP-14215
Diffstat (limited to 'lib/stdlib/doc')
-rw-r--r-- | lib/stdlib/doc/src/filename.xml | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/lib/stdlib/doc/src/filename.xml b/lib/stdlib/doc/src/filename.xml index 2a413835d0..f7f3f7b504 100644 --- a/lib/stdlib/doc/src/filename.xml +++ b/lib/stdlib/doc/src/filename.xml @@ -511,6 +511,33 @@ true </func> <func> + <name name="safe_relative_path" arity="1"/> + <fsummary>Sanitize a relative path to avoid directory traversal attacks.</fsummary> + <desc> + <p>Sanitizes the relative path by eliminating ".." and "." + components to protect against directory traversal attacks. + Either returns the sanitized path name, or the atom + <c>unsafe</c> if the path is unsafe. + The path is considered unsafe in the following circumstances:</p> + <list type="bulleted"> + <item><p>The path is not relative.</p></item> + <item><p>A ".." component would climb up above the root of + the relative path.</p></item> + </list> + <p><em>Examples:</em></p> + <pre> +1> <input>filename:safe_relative_path("dir/sub_dir/..").</input> +"dir" +2> <input>filename:safe_relative_path("dir/..").</input> +[] +3> <input>filename:safe_relative_path("dir/../..").</input> +unsafe +4> <input>filename:safe_relative_path("/abs/path").</input> +unsafe</pre> + </desc> + </func> + + <func> <name name="split" arity="1"/> <fsummary>Split a filename into its path components.</fsummary> <desc> |