我已经建立了一个Apache服务器,托管一个网站。
例如,在我的网站上,您可以玩在线javascript atari roms。每当您在网站上加载rom时,javascript都会将其临时下载到浏览器缓存中。
例如,如果您编写website.com/roms/atari.zip,则可以下载此rom。我不要这个。
是否有一种方法可以禁止直接访问此文件,但也可以从javascript请求中将访问权限列入白名单?
非常感谢。
答案 0 :(得分:0)
要求Authorization标头是执行此操作的一种方法。
创建身份验证用户:
/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概述的。