Как предотвратить горячую ссылку изображения от Вашего сайта ASP.NET?

Я думаю, что это не очень хорошая задача для регулярных выражений, я бы использовал словарь с разбивкой входной строки на строки заданной длины:

var length = 3;
var str = "zf3kabxcde224lkzf3mabxc51+crsdtzf3nab=";
var occurences = new Dictionary<string, int>();
for (int i = 0; i < str.Length - length + 1; i++)
{
    var s = str.Substring(i, length);
    if (occurences.ContainsKey(s))
      occurences[s] += 1;
    else
      occurences.Add(s, 1);
}

Теперь вы можете проверить, сколько вхождений имеет любую строку длины 3, например .: occurences["zf3"] равно 3.

5
задан Daniel A. White 15 March 2009 в 22:17
поделиться

3 ответа

Потоковая передача изображений через страницу ASPX является хорошим решением. Хотя Ссылающийся домен мог быть взломан.

То, что Вы могли сделать, использовать уникальную соль (ключевое слово) и генерировать против MD5 (SHA-1 или SHA-2), если Вы действительно обеспокоены безопасностью. Выполните текущее время эпохи также против этого также, это помещает истечение на изображения также. Сохраните этот "код клавиши" в cookie. Каждый раз, когда изображения вручены, Вы в основном передаете это через querystring. Проверка происходит на ASPX на другом конце. Вы могли даже повторно создать новый "код клавиши" между каждым запросом с помощью или HTTPRequestModule или страницы Global.asax.

Будут издержки, но они предотвратят любого от использования горячих ссылок.

3
ответ дан 18 December 2019 в 09:54
поделиться

Одна вещь я видел, что думал, была умна, состоит в том, чтобы добавить дополнительная часть к нижней части изображения и затем использовать метод спрайта CSS для отключения ее при показе на сайте. Наивная горячая ссылка приведет к отображению Вашей дополнительной части. Это будет означать, что изображение скашивается, таким образом, это не выглядит правильным на другом сайте, и можно использовать дополнительную часть для показа собственного URL или независимо от того, что Вы хотите.

2
ответ дан 18 December 2019 в 09:54
поделиться

Вы могли отказаться от любых запросов на изображения, которые не имеют Вашего сайта в поле заголовка ссылающегося домена HTTP. Это - теория. Для управления запросами в приложении необходимо было бы передать все изображения потоком через ASP-страницу (в противоположность соединению с ними непосредственно).

3
ответ дан 18 December 2019 в 09:54
поделиться
Другие вопросы по тегам:

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