我需要通过Apache 2.x Ubuntu服务器上的Perl CGI脚本存储数据。我想访问 - 锁定该数据仅 RW访问Apache(或Perl脚本),并且不可从URL获得。
一种解决方案是安装数据库。我想避免这种依赖并将数据存储在唯一的文件名中(这种方法适用于此应用程序)。
但是,我不熟悉配置它的好方法。
为网络服务器设置文件IO的“沙盒”目录所需的配置是什么,而不允许指向该目录的URL?
答案 0 :(得分:1)
将目录放在文档根目录之外(在目录之外别名到文档根目录或通过mod_rewrite映射的任何目录)。 Apache和Perl脚本将能够读取/写入此位置(当然,给定位置的完整路径并具有正确的文件权限),但无法通过URL访问它。
有一个重要的警告!文档根目录之外的文件不能通过URL直接访问,但如果Perl脚本显示文件中的内容,那么您就会遇到XSS和信息泄露的常见安全问题。您还需要注意文件名“唯一性”或缺乏文件名如何影响此设计,例如:用户可能会试图故意覆盖文件或猜测文件名。