Comment puis-je empêcher hotlinking sur Amazon S3 sans utiliser les URL signés?

StackOverflow https://stackoverflow.com/questions/948823

  •  09-09-2019
  •  | 
  •  

Question

Est-il possible que je peux empêcher hotlinking sur Amazon S3 sans utiliser les URL signés?

Était-ce utile?

La solution

En mettant en place la politique de seau droit S3, vous pouvez ajouter la politique de référence pour éviter le hotlink.

http://s3browser.com/working-with-amazon-s3-bucket-policies .php

Autres conseils

Vous avez besoin d'une politique de seau qui permet à la fois référants de votre domaine (s) REJETTE qui ne sont pas référants de vos domaines. J'ai trouvé que les images peuvent être hotlinked si vous ne pas inclure le refus explicite -. De nombreux guides et exemples donnent juste la politique et de permettre ne mentionnent pas la partie nier

Voici ma politique, il suffit de changer auges NOM ET VOTRE SITE WEB-à vos propres détails:

{
  "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/*"
          ]
        }
      }
    }
  ]
}

J'utilise Apache RewriteMap remapper liens relatifs pour sélectionner les extensions de fichier - * .jpg, * .gif, * swf, * fla pour CloudFront. fait essentiellement l'URL de vos images présentes sous forme de liens relatifs à votre site. Il ne l'empêche pas découverte de l'URL S3 / de CloudFront totalement, juste ajoute une couche de difficulté pour le serait voleur.

Peut-être la peine d'essayer, d'appliquer les restrictions HOTLINK via htaccess avec la méthode ci-dessus en place. Je ne l'ai pas essayé moi-même.

Il y a un bon tutoriel ici . Assurez-vous de vérifier les commentaires, car il y a un blanc dans le code du site qui cause la solution de ne pas travailler.

Il est dans leur docs officiels

Modifier examplebucket à votre nom de seau, et example.com à votre domaine.

"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/*"]}
    }
  }
]
}

Hotlinking est une des raisons pour Amazon CloudFront créé. CloudFront est beaucoup plus rapide à. J'ai fait un writeup dessus, vous pouvez regarder ici.

http: // Blog .sat.iit.edu / 2011/12 / amazon-aws-s3-vs-CloudWatch-performance Match retour /

edit: S3 et CloudFront utilisent le même type de politique de seau pour vous assurer que la demande vient de l'URL correcte. CloudFront est encore plus rapide cependant.

Pas vraiment. Vous pouvez exécuter une instance EC2 et proxy par là.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top