web-dev-qa-db-fra.com

Empêcher la création de liens hypertextes entre Amazon S3 et les réseaux sociaux

J'utilise Amazon S3 pour héberger des actifs (principalement des images) sur un petit projet. J'essaie de trouver un moyen d'empêcher les sangsues (ce qui peut être très grave si quelqu'un essayait d'utiliser un réseau de robots pour tirer mon billet vers les étoiles).

Mon approche actuelle utilise cette politique:

   {
  "Version": "2008-10-17",
  "Id": "",
  "Statement": [
    {
      "Sid": "Allow in my domains",
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::BUCKET/*",
      "Condition": {
        "StringLike": {
          "aws:Referer": [
            "http://www.myproject.com/*"
          ]
        }
      }
    },
    {
      "Sid": "Deny access if referer is not my sites",
      "Effect": "Deny",
      "Principal": {
        "AWS": "*"
      },
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::BUCKET/*",
      "Condition": {
        "StringNotLike": {
          "aws:Referer": [
            "http://www.myproject.com/*"
          ]
        }
      }
    }
  ]
}

Le problème est qu'en appliquant une telle politique, les services de partage de réseaux sociaux tels que Facebook et Google Plus 'ne peuvent plus atteindre mes images pour composer la "publication". Facebook et Google recherchent tous deux le contenu partagé et transfèrent une vignette générée de l'image du contenu vers leurs propres serveurs (Facebook utilise Akamai, tbw) ...

L'un de vous a-t-il une idée de l'hôte utilisé par ces deux réseaux sociaux pour récupérer des fichiers afin que je puisse leur accorder l'accès?

3
K.D.

Facebook tilise l'agent utilisateur facebookexternalhit

facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)"

Google+ tilise un agent d'utilisateur contenant "Google"

Google (+https://developers.google.com/+/web/snippet/)

Vous devez leur accorder l'accès par agent utilisateur.

1