Есть ли способ предотвратить хотлинкинг на Amazon S3 без использования подписанных URL-адресов?
Как предотвратить горячую ссылку на Amazon S3 без использования подписанных URL-адресов?
Ответ 1
Установив правильную политику веток S3, вы можете добавить реферальную политику, чтобы предотвратить горячую ссылку.
http://s3browser.com/working-with-amazon-s3-bucket-policies.php
Ответ 2
Вам нужна политика ведра, которая позволяет реферерам из вашего домена (ов) и лишает источники, не принадлежащие вашим доменам. Я обнаружил, что изображения могут быть hotlinked, если вы не включаете явное отрицание - многие руководства и примеры просто дают политику allow и не упоминают часть deny.
Здесь моя политика, просто измените BUCKET-NAME и ВАШ-САЙТ на ваши собственные данные:
{
"Version": "2008-10-17",
"Id": "",
"Statement": [
{
"Sid": "Allow in my domains",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::BUCKET-NAME/*",
"Condition": {
"StringLike": {
"aws:Referer": [
"http://www.YOUR-WEBSITE.com/*"
]
}
}
},
{
"Sid": "Deny access if referer is not my sites",
"Effect": "Deny",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::BUCKET-NAME/*",
"Condition": {
"StringNotLike": {
"aws:Referer": [
"http://www.YOUR-WEBSITE.com/*"
]
}
}
}
]
}
Ответ 3
Я использую Apache RewriteMap для переназначения относительных ссылок для выбора расширений файлов - *.jpg, *.gif, * swf, *.fla в Cloudfront. В основном делает URL ваших изображений представленными как относительные ссылки на ваш сайт. Это не препятствует полностью открытию URL-адреса S3/cloudfront, просто добавляет уровень сложности для вора.
Возможно, стоит попробовать, примените ограничения hotlink через htaccess с указанным выше методом. Я сам не пробовал.
Ответ 4
Здесь хороший учебник здесь. Обязательно ознакомьтесь с комментариями, поскольку в коде веб-сайта есть пробельный символ, который заставляет решение не работать.
Ответ 5
Это в официальных официальных документах
Измените examplebucket
на имя своего ведра и example.com
на свой домен.
"Version":"2012-10-17",
"Id":"http referer policy example",
"Statement":[
{
"Sid":"Allow get requests originating from www.example.com and example.com.",
"Effect":"Allow",
"Principal":"*",
"Action":"s3:GetObject",
"Resource":"arn:aws:s3:::examplebucket/*",
"Condition":{
"StringLike":{"aws:Referer":["http://www.example.com/*","http://example.com/*"]}
}
}
]
}
Ответ 6
Не совсем. Через это можно запустить экземпляр EC2 и прокси.
Ответ 7
Hotlinking - одна из причин, по которым Amazon создал Cloudfront. Cloudfront намного быстрее. Я написал записку, на которой вы можете посмотреть здесь.
http://blog.sat.iit.edu/2011/12/amazon-aws-s3-vs-cloudwatch-performance-grudgematch/
edit: S3 и Cloudfront используют один и тот же тип политики ведра, чтобы убедиться, что запрос исходит из правильного URL-адреса. Однако Cloudfront все еще быстрее.