首页 > 解决方案 > Apache Server Web 目录访问限制

问题描述

我已经建立了一个 apache 服务器,托管了一个网站。

例如,在我的网站中,您可以玩在线 javascript atari roms。每当您在网站中加载 rom 时,javascript 都会将其临时下载到您的浏览器缓存中。

例如,如果您编写 website.com/roms/atari.zip,您可以下载此 rom。我不想要这个。

有没有办法禁止直接访问此文件,但也可以从 javascript 请求中将访问列入白名单?

非常感谢您。

标签: javascriptapachewhitelist

解决方案


要求授权标头是执行此操作的一种方法。

创建认证用户:

/path/to/htpasswd -c /etc/htpasswd/.htpasswd downloaduser

你会提供密码。请注意,上面的命令将创建一个新文件,覆盖以前的文件。

您可以在 httpd.config 中对其进行配置,例如:

<Directory "/var/www/html/roms">
  AuthType Basic
  AuthName "Authentication Required"
  AuthUserFile "/etc/htpasswd/.htpasswd"
  Require valid-user
</Directory>

然后,使用 javascript 中的 XHR 请求,

req.setRequestHeader('Authorization','Basic ' + Base64StringOfUserColonPassword);

base64StringOFUserColonPassword 就是顾名思义,你可以像这样得到它window.btoa(username + ":" + password)),或者用base64命令行命令。

进一步阅读:

编辑:这里有 xampp 特定说明,例如:http: //chandanpatra.blogspot.com/2013/08/basic-authentication-with-htpasswd-in.html。该过程也与我为 xampp 概述的一样。


推荐阅读