【问题标题】:How can i prevent .txt file from being viewed directly?如何防止 .txt 文件被直接查看?
【发布时间】:2017-12-06 18:09:38
【问题描述】:

我有这个 Javascript 代码,它将搜索到一个名为 codes.txt 的 .txt 文件

                    $.get('codes.txt', function (contents) {
                        if (contents.includes($('#code').val())) {
                            validForm =true;
                        } else {
                            alert("Sorry!! That is not a valid code. Try again! Or email admin@apsoccer.hk");
                            return false;
                        }
                    });

我想要 .htaccess、权限或任何技巧使其仅由我的服务器使用,而不是像 http://mysite/codes.txt 那样直接查看

我该怎么做?

【问题讨论】:

  • 你不能,只要你依赖在客户端读取文件内容。您必须将其移植到服务器,以便仅将要搜索的术语发送到那里,然后根据是否在文本文件中找到该术语,服务器端脚本会向客户端提供适当的响应-脚本。
  • 或者使用像firebase这样的云存储服务

标签: javascript .htaccess permissions url-redirection file-permissions


【解决方案1】:

编辑您的 .htaccess 以接受仅从 AJAX 访问的读取文件。

<Files "code.txt">
    SetEnvIfNoCase X-Requested-With XMLHttpRequest ajax
    Order Deny,Allow
    Deny from all
    Allow from env=ajax
</Files>

【讨论】:

  • 如何将其设置为仅 .txt 文件??
  • 最简单的解决方案是创建一个像“config”这样的文件夹,并将您的文件codes.txt和.htaccess与上面的代码放在一起......而不是从文件夹“config”调用ajax,如:$.get ('config/codes.txt', 函数(内容) {...}
【解决方案2】:

codes.txt 存储在公共目录之外(或使用.htaccess 拒绝公共访问它),然后使用$.get 访问服务器端脚本,该脚本返回文本文件的内容而不是文本文件本身。然后,您可以为服务器端脚本添加安全性。 (用户权限、CSRF 保护等)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-17
    • 2023-02-16
    • 2012-05-01
    • 1970-01-01
    • 2012-05-22
    • 1970-01-01
    相关资源
    最近更新 更多