Я установил сервер apache, на котором размещен веб-сайт.
Например, на моем веб-сайте вы можете играть с онлайн-ромами atari на javascript. Каждый раз, когда вы загружаете ром на веб-сайт, javascript временно загружает его в кеш вашего браузера.
Если вы, например, напишите website.com/roms/atari.zip, вы можете скачать этот ROM. Я не хочу это.
Есть ли способ запретить прямой доступ к этому файлу, а также добавить доступ в белый список из запросов javascript?
Большое спасибо заранее.
да нет проблема звучит отлично. но bacuse im a noob, как это сделать? как вы видите этот neptunjs.xyz/atari.html, хотя в его javascript вы загружаете игру, когда заходите на neptunjs.xyz/roms/atari/E.T. - Extra-Terrestrial.zip, вы не можете его скачать.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Заголовок «Требование авторизации» - один из способов сделать это.
Создание пользователя для аутентификации:
/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>
Затем с запросом XHR в javascript,
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.
спасибо за все это, но я запускаю apache через xampp в Windows ..
@immeckro - только часть моего ответа, не имеющая прямого отношения к Windows, - это команда htpasswd. вы можете использовать веб-инструмент, такой как htaccesstools.com/htpasswd-generator-windows, вместо командной строки.
@immeckro добавил в мой ответ ссылку, специфичную для xampp
@immeckro является mem.neptunjs.com вашим доменом или вы можете редактировать его файлы?
если это не ваш домен и не код, который вы контролируете, вероятно, нет способа сделать это. Это делает это не вопросом apache, а вопросом редактирования чужого javascript-приложения.
вы можете потребовать определенный заголовок запроса, который вы предоставляете с запросом javascript, и запретить доступ без этого заголовка. Однако, если кто-то знает и предоставляет этот заголовок, файл также будет доступен по прямой ссылке. это было бы то, что вы хотите?