pandemonium_engine/modules/web/doc_classes/FileCache.xml

88 lines
3.7 KiB
XML

<?xml version="1.0" encoding="UTF-8" ?>
<class name="FileCache" inherits="Reference" version="4.4">
<brief_description>
The FileCache class provide functionality for file caching and name and path sanitization for the web module.
</brief_description>
<description>
The FileCache class provide functionality for file caching and name and path sanitization for the web module.
It helps with avoiding directory traversal attacks, as relative paths are not going to be expanded by accident.
(A directory traversal attach would be if an application receives this get request: [code]server.net/../../../etc/passwd[/code], and it would result in success, if the app then returns the contents of the "passwd" file, which is outside of the root folder of the server.)
It can save contents of files or pages into memory if needed using the [code]set_cached_body()[/code] helper method.
</description>
<tutorials>
</tutorials>
<methods>
<method name="clear">
<return type="void" />
<description>
Clear all internal caches.
</description>
</method>
<method name="get_cached_body">
<return type="String" />
<argument index="0" name="path" type="String" />
<description>
Get a previously stored page's or file's body.
</description>
</method>
<method name="get_wwwroot_abs">
<return type="String" />
<description>
Return the set [member wwwroot]'s absolute path.
</description>
</method>
<method name="has_cached_body">
<return type="bool" />
<argument index="0" name="path" type="String" />
<description>
Check whether a page's or file's body is available.
</description>
</method>
<method name="set_cached_body">
<return type="void" />
<argument index="0" name="path" type="String" />
<argument index="1" name="body" type="String" />
<description>
Store a page's or file's body.
</description>
</method>
<method name="wwwroot_get_file_abspath">
<return type="String" />
<argument index="0" name="file_path" type="String" />
<description>
Returns the absolute path to a file if it exists in the given [member wwwroot]. If it doesn't exists returns an empty [String].
Guards against directory traversal.
Note: file path should be the url you want to access the file with, including lead slash. e.g. http://127.0.0.1/a/b/d.jpg -&gt; /a/b/d.jpg
</description>
</method>
<method name="wwwroot_get_simplified_abs_path">
<return type="String" />
<argument index="0" name="file_path" type="String" />
<description>
Returns the absolute path to a file in the given [member wwwroot]. Does not checks if the file exists or not. Returns an empty [String] on error.
Guards against directory traversal.
Note: file path should be the url you want to access the file with, including lead slash. e.g. http://127.0.0.1/a/b/d.jpg -&gt; /a/b/d.jpg
</description>
</method>
<method name="wwwroot_has_file">
<return type="bool" />
<argument index="0" name="file_path" type="String" />
<description>
Check whether a file exists in the given [member wwwroot].
Guards against directory traversal.
Note: file path should be the url you want to access the file with, including lead slash. e.g. http://127.0.0.1/a/b/d.jpg -&gt; /a/b/d.jpg
</description>
</method>
</methods>
<members>
<member name="cache_invalidation_time" type="int" setter="set_cache_invalidation_time" getter="get_cache_invalidation_time" default="0">
How long a page's or file's body should be stored.
</member>
<member name="wwwroot" type="String" setter="set_wwwroot" getter="get_wwwroot" default="&quot;&quot;">
Set a www root directory for this [FileCache]. It can be both relative and absolute.
</member>
</members>
<constants>
</constants>
</class>