Javascript Apache服务器Web目录访问限制

Javascript Apache服务器Web目录访问限制,javascript,apache,whitelist,Javascript,Apache,Whitelist,我已经建立了一个apache服务器,托管了一个网站 例如,在我的网站上,你可以玩在线javascript atari ROM。无论何时在网站中加载rom,javascript都会临时将其下载到浏览器缓存中 例如,如果你写了website.com/roms/atari.zip,你可以下载这个rom。我不想要这个 有没有办法禁止直接访问此文件,但也禁止从javascript请求中进行白名单访问 很多人都提前向您表示感谢。需要授权头是一种方法 创建身份验证用户: /path/to/htpasswd -

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

例如,在我的网站上,你可以玩在线javascript atari ROM。无论何时在网站中加载rom,javascript都会临时将其下载到浏览器缓存中

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

有没有办法禁止直接访问此文件,但也禁止从javascript请求中进行白名单访问


很多人都提前向您表示感谢。

需要授权头是一种方法

创建身份验证用户:

/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>
base64StringOFUserColonPassword就是这个名字的意思,你可以像
window.btoa(username+“:“+password))
一样获得它,或者使用
base64
命令行命令

进一步阅读:


编辑:这里有特定于xampp的说明,例如:。这个过程也和我为xampp所概述的一样。

您可以要求一个特定的请求头,该头随javascript请求一起提供,并禁止没有该头的访问。但是,如果有人知道并提供了该头文件,那么也可以通过直接链接访问该文件。这就是你想要的吗?是的,没问题,听起来不错。但是因为我是个傻瓜怎么做?正如你所看到的,即使在他的javascript中,你可以在进入时下载游戏。-Extra-terral.zip您无法下载它。感谢您所做的一切,但我在windows上通过xampp运行apache。@imeckro我的答案中只有一部分不直接适用于windows的是htpasswd命令。您可以使用web工具,如代替命令行。@immeckro在我的回答中添加了xampp特定的链接now@immeckromem.neptunjs.com是您的域,还是您可以编辑它的文件?如果它不是您的域,也不是您控制的代码,那么可能没有办法做到这一点。这使得这不是一个apache问题,而是编辑其他人的javascript应用程序的问题。
req.setRequestHeader('Authorization','Basic ' + Base64StringOfUserColonPassword);