Question

Le travail à la main:

Je veux m'assurer que mon site des utilisateurs de consulter la page avant de commencer un téléchargement.Si ils n'ont pas regardé la page mais essayez de hotlink pour les fichiers directement, ils doivent aller à la page web avant que le téléchargement est autorisé.

Toutes les suggestions qui sont mieux que mon idée d'envoyer un cookie, et avant le début du téléchargement - vérifier si le cookie existe (par .htaccess)?

La page web et les fichiers à télécharger sont situés sur différents serveurs.

Environnement:

  • Apache 2 sur toutes les machines
  • PHP 5 sur toutes les machines
  • MySQL 5 disponible sur la page" serveur (pas d'accès depuis les serveurs de téléchargement)

Nathan a demandé à ce que le problème est que j'essaie de résoudre, et en fait, c'est que je veux éviter hotlinks de - par exemple - forums.Si les gens de télécharger à partir de notre serveur, à l'aide de notre bande passante, je veux leur montrer une page avec une annonce avant le début du téléchargement.Il n'a pas besoin d'être totalement sécurisé, mais nous avons besoin de faire un peu d'argent pour financer les serveurs, non?:)

Était-ce utile?

La solution 6

Je vais utiliser mod_auth_token assurez-vous que l'utilisateur dispose d'un "récente lien".

Avec mod_auth_token vous pouvez créer expirant liens, c'est à diresi quelqu'un décide de prendre un lien existant et de le poster sur un autre site, ce lien expirera au bout d'un certain temps.Ce sera le résultat d'un 403 FORBIDDEN qui je peux les attraper et de les rediriger l'utilisateur vers la page HTML que je veux lui sur.

Autres conseils

Au lieu de laisser les liens directs vers les fichiers, de les stocker à l'extérieur d'un site web accessible de la route.Au lieu de faire les demandes de téléchargement d'aller à un script php qui lance le téléchargement.Vous pouvez mettre mis en place des contrôles pour s'assurer que la page de requête a été celle que vous voulez lire.

Un module Apache mod_rewrite RewriteRule pouvez le faire.

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://www.example.com/page.html$
RewriteRule file.exe http://www.example.com/page.html [R=301,L]

En gros, si une demande de file.exe n'est pas venu avec page.html comme le référent, il va redirection 301 pour rediriger l'utilisateur vers page.html.

Vous pouvez utiliser distribué côté serveur séances au lieu de les cookies, mais qui est probablement le plus d'ennuis que cela vaut la peine.

Vous pouvez également interdire l'accès pour les demandes sans référent ou avec un mauvais aiguillage.Mais c'est encore plus fakable d'un cookie.

Ça dépend de combien vous vous inquiétez.

La solution dépend du problème que vous essayez de résoudre.Si vous essayez juste assurez-vous un lien direct à ne pas avoir posté dans les forums et autres joyeusetés, puis il suffit de vérifier le référent avec .htaccess devrait être suffisant.Bien sûr, le référent peut être falsifiée assez facile, donc, si le risque que quelqu'un fait qui est un problème, alors vous aurez besoin de faire autre chose.

Un cookie devrait faire l'affaire si vous avez besoin de quelque chose d'un peu plus sécurisé.Nous ne pouvons pas utiliser les sessions php, car le serveur de fichiers et le serveur web sont sur des zones différentes.Mais nous pourrions créer un cookie, basé sur une table de hachage de l'époque, et certains secrets de la valeur.

cookievalue = sha1('secretvalue'.date('z-H'));

Lorsque l'utilisateur demande le fichier, le serveur de fichiers génère ce cookie de nouveau et s'assurer qu'il correspond à la part des utilisateurs.Cela signifie que, même si l'utilisateur forges le cookie, il sera invalide après une heure, alors qui s'en soucie, et ils ne peuvent pas produire leur propre nouvelle, parce qu'ils ne connaissent pas la valeur du secret.

J'étais sur le point de suggérer l' .htaccess de référence truc, mais ce n'est pas une méthode sûre.Il est facile de faire un script PHP, avec un custom http référence ajoutée.Si vous entrez dans la page de téléchargement de là, il va penser que vous venez de la page.

Est-ce un problème?Pouvez-vous dire quelque chose sur le cadre de votre page de téléchargement?

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