Как запретить загрузку файлов через прямой доступ по URL? - PullRequest
0 голосов
/ 17 февраля 2020

В настоящее время я работаю над проектом, который позволяет пользователям обновлять и исправлять свои приложения, когда доступны обновления. Я использую Apache в качестве веб-сервера и помещаю свои файлы патчей в сеть root. Приложение загружает файлы исправлений через https (я использую систему исправлений, купленную в хранилищах активов Unity. Она поддерживает http, https и ftp. Это сделано в c#). Я отключил распечатку каталога для большей безопасности, однако я все еще могу загружать указанные c файлы через браузер, если я укажу путь. Например: https://example.com/patch/test.txt

Можно ли каким-либо образом запретить пользователям загружать файлы напрямую через URL? Есть ли лучший способ улучшить безопасность?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 17 февраля 2020

Чтобы запретить загрузку файлов, когда:

  • Пользователь скопирует и вставит URL-адрес прямо в браузер и нажмет ввод
  • Пользователь нажимает прямую ссылку с другого веб-сайта

Вы можете рассмотреть следующие варианты:

  • Ваш Клиент обновления установлен Пользовательский заголовок HTTP или Cookies до запроса файла из затем сервер Сервер (PHP) проверьте, присутствует ли любой из них , а затем отправьте файл.
  • Поскольку вы используете Apache веб-сервер, вы можно использовать RewriteRule , чтобы сделать то же, что и выше.

Пример .htaccess:

Проверка на готовность ie:

RewriteEngine on
RewriteCond %{HTTP_COOKIE} !YourMagicCookie=123456 [NC]
RewriteRule ^ - [F]

Проверка настраиваемого заголовка HTTP:

RewriteEngine on
RewriteCond %{HTTP:X-YourUpdateClient} !^$
RewriteRule ^ - [F]
0 голосов
/ 17 февраля 2020

Вы можете разрешить указывать только c ips:

<Location />
        Order Deny,Allow
        Deny from all
        Allow from 192.168.
</Location>

Если приложение установлено на том же p c, что и браузер, то вам не повезло. Возможно, вам удастся совершить магию c с пользовательскими агентами, но это может быть взломано практически любым человеком с почтальоном.

Именно поэтому мы предпочитаем хранить их в базах данных, файловых серверах или хранилищах больших двоичных объектов, поэтому что мы также можем их обезопасить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...