방지 핫 링크 그리고 추천 도메인 인 example.com과 아마도 개발 서버로 사용하는 또 다른 도메인에 대한 액세스를 제한하는 다른 콘텐츠 구매입니다.CloudFlare와 S3 양동이 : 이미지 핫 링크 방지하기 위해 내가 좋아하는 것</p> <pre><code>https://images.example.com/myfile.jpg </code></pre> <p>: 나는 성공적으로 같은 URL을 사용 Cloudflare CDN을 통해 컨텐츠를 제공 images.example.com라는 아마존 S3 버킷을 사용하고
{
"Version": "2012-10-17",
"Id": "http referer policy example",
"Statement": [
{
"Sid": "Allow get requests referred by www.example.com",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::images.example.com/*",
"Condition": {
"StringLike": {
"aws:Referer": [
"http://www.example.com/*",
"http://example.com/*"
]
}
}
},
{
"Sid": "Explicit deny to ensure requests are allowed only from specific referer.",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::images.example.com/*",
"Condition": {
"StringNotLike": {
"aws:Referer": [
"http://www.example.com/*",
"http://example.com/*"
]
}
}
}
]
}
이를 테스트하려면 :
나는 모두가 어떤 도메인이 아닌 특정 도메인에서 특정 도메인에서 허용하고 거부하는 버킷 정책을 시도했습니다. 나는 다른 서버에서 작은 웹 페이지를 업로드 : www.notExample.com를 내가 사용하여 이미지 링크하여 시도 여기서
<img src="https://images.example.com/myfile.jpg">
을하지만 hotlinked 이미지에 관계없이 나타납니다.
은 또한 다음과 같은 CORS가 핫 링크를 방지하기 위해 일했다<CORSConfiguration>
<CORSRule>
<AllowedOrigin>http://www.example.com</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
이들 중 어느
를 지배하려고했습니다. 나는 버킷 정책과 CORS (하나 또는 다른 플러스 둘 다)의 조합을 사용하여 CloudFlare에서 캐시 된 파일을 삭제하려고 시도했지만 아무 것도 작동하지 않습니다.이 작업은 상대적으로 간단한 작업입니다. 내가 도대체 뭘 잘못하고있는 겁니까?
감사합니다. 클라우드 플레어의 사이트에서 'cloudflare with s3'기사를 사용하는 것은 액세스를 제한하는 것보다 s3에 대한 액세스를 허용하는 것과 관련이 있습니다.불행하게도, 핫 링크 보호 기능은 이미지에서만 작동하며 주요 핫 링크/대역폭 문제인 자체 호스팅 오디오 및 비디오 파일과는 작동하지 않는 것으로 보입니다. – dijon
몇 가지 대체 옵션을 추가했습니다. –