Как предотвратить глубоко соединение с файлами на моем веб-сайте

с помощью генератора вы можете сделать это так, лучше, читабельнее и более питонически

B = [3,6,5,7,8,10]
def function_1(A):
    for i in range(len(A)//2):
         factor = A[2*i]
         yield factor

result = list(function_1(B))
# output [3, 5, 8]
10
задан Vadim Kotov 6 September 2017 в 20:36
поделиться

5 ответов

При использовании PHP у Вас может быть сценарий, который связывает пользователя с загрузкой, но только если $_SERVER['HTTP_REFERER'] от Вашего сайта. Если это не Вы, перенаправляют на Ваш сайт.

16
ответ дан 3 December 2019 в 13:28
поделиться

Ваш сайт размещается веб-сервером Apache, таким образом, необходимо смочь сделать следующее в httpd.conf сайта (или виртуальный блок хоста)

RewriteEngine On
RewriteCond   %{HTTP_REFERER} !^$
RewriteCond   %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com/  [NC]
RewriteRule   ^/PublicFiles/  /page-about-direct-links.html

Это в основном говорит:

  1. Включите mod_rewrite механизм
  2. Если Ссылающийся домен HTTP не является пробелом …
  3. И не содержит мое доменное имя (с или без “www”.) …
  4. Перенаправьте любые запросы на что-либо под/PublicFiles/к /page-about-direct-links.html

Больше информации о mod_rewrite может быть найдено здесь: mod_rewrite - Apache Сервер HTTP

20
ответ дан 3 December 2019 в 13:28
поделиться

Не предоставляйте прямую ссылку на файл, которому Вы служите. Предоставьте сценарий, который отправляет содержание через сценарий, после того как Вы поражаете кнопку отправки.

Сделайте веб-поиск отправки файлов через cgi.

Вот аккуратная ссылка, которую я нашел онлайн: здесь

11
ответ дан 3 December 2019 в 13:28
поделиться

Почему не только делают ссылки динамичными и косвенными, например:

на странице X: (статичный)

<a href="Y">SuperNeat Program</a>

на странице Y: (динамично сгенерированный)

Click here to download 
<a href="Z.php?timestamp={timestamp}&counter={counter}&hash={hash}">
SuperNeat Program</a>

и замена добавляет метку времени к w/текущее время в msec с 1970, счетчик = счетчик, который Вы увеличиваете однажды на загрузку, хеш =, хеш MD5 конкатенирует (метка времени, счетчик, секретная соль), где секрет солит = любой любимый код, Вы держите в секрете.

Затем на странице Z.php, Вы просто повторно вычисляете хеш из счетчика и метки времени в строке запроса, проверяете, что это соответствует хешу в строке запроса, и что метка времени является недавней (например, с предыдущих 30 минут или 60 минут или безотносительно). Если это, то служите рассматриваемому файлу. Если это не, бросьте сообщение об ошибке. Это дает кому-то только краткий период времени прямой ссылке на Ваш файл. Если Вы даже не хотите это, то отслеживаете встречные значения, полученные в строке запроса Z.php, и не принимаете их несколько раз.

1
ответ дан 3 December 2019 в 13:28
поделиться

Я нисколько не веб-эксперт, но я думал о следующем указателе -

если Вы используете asp.net, мог http обработчики или модули, настроенные в справке уровня веб-сайта (партия информации о тех, которые в сети, я недавно искал ее для некоторой работы, вот одна статья, например.

Идея состоит в том, чтобы прервать запрос, прежде чем это достигнет конечного файла, и перенаправьте его к странице, которую Вы хотите показать; например - если кто-то хочет просмотреть к URL, Вы отправили ("http://sy-stu.org/stu/PublicFiles/StdLibrary/Exam.zip"), прерывают этот вызов, используют некоторый поиск для нахождения страницы, Вы хотите отобразить и перенаправить запрос там; я предполагаю, что пользователи, переходящие по ссылке, не будут слишком раздражаться (если они не сделали, "сохраняют объект как", который закончился бы их сохраняющий некоторый HTML и не ZIP).

Однако существует некоторая "дыра" в моем плане - как Вы на самом деле предоставляете ссылку, которая работает от Вашей собственной страницы? Я полагаю, что можно дифференцироваться между запросами, прибывающими из веб-сайта и, прибывающих из других, который Вы могли проверить обработчик/модуль путем исследования объекта запроса.

0
ответ дан 3 December 2019 в 13:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: