2010-03-17 15 views
2

J'ai un site Web où les groupes locaux peuvent avoir une page de profil, je suis en train de mettre en œuvre un système de téléchargement afin qu'ils puissent ajouter des chansons à leur profil.Fichier de téléchargement de l'utilisateur au-dessus de la racine du Web avec php

Je veux m'assurer que les visiteurs intelligents de mon site Web ne peuvent pas télécharger leurs chansons.

Je pensais à les télécharger au-dessus du dossier de mon domaine afin qu'ils ne soient pas accessibles directement. Est-ce une bonne idée et/ou possible? Si non, que suggérez-vous que je fasse pour éviter aux utilisateurs de télécharger des chansons? J'utilise déjà un lecteur flash pour essayer d'empêcher les téléchargements.

Répondre

2

Vous ne l'arrêtera pas très intelligent que tous les uri peuvent être interceptés par l'utilisateur avant qu'il ne soit envoyé et utilisé comme il l'entend. Les autres utilisateurs auront simplement recours à un logiciel pour enregistrer la chanson telle qu'elle est jouée dans leur système.

Les blocus typiques pour contrecarrer les moins astucieux (en rendant la collecte d'uri très difficile) sont des serveurs d'uri et de streaming.

+0

Vous pouvez également intercepter la requête Web Flash et télécharger directement ce fichier (une méthode que j'utilise avec Pandora). –

1

Vous pouvez utiliser des URL dynamiques pour les chansons. Je veux dire, au lieu d'atteindre la chanson comme /mp3s/someband.mp3, vous pouvez générer un script dynamique tel que

findmp3.php?param=dfsdfdsfedfew87rfy2348rf48fg834 

où sera une param données qui comprend hachés le chemin réel au fichier et le Haching key est différent pour chaque requête

alors même que je trouve cette urla et copier et coller à un client de téléchargement, cela ne fonctionnera pas parce que la clé que vous avez utilisée pour la première fois est déjà utilisée et vous ne l'autoriserez pas à la deuxième fois .

pour coder le param, vous pouvez utiliser mcrypt

+0

Même en supposant que le param ne soit pas visible dans le code HTML, supposons que l'utilisateur configure un proxy ou quelque chose de similaire pour rediriger les requêtes pour findmp3.php? Param = rien du fichier SWF afin que la "première fois" ne se produise pas, puis fait la demande lui-même? Ceci est peut-être un peu paranoïaque, mais la seule façon d'être sûr à 100% est soit d'intégrer les données réelles dans le fichier SWF, soit de chiffrer le * contenu * du fichier plutôt que la chaîne de requête. –

+1

pas moyen, car la clé qui génère le paramètre crypté sera stockée en session (ou db), il n'y a aucun moyen le client le sait, et le script obtiendra cette clé du serveur (session ou db) pour décrypter le paramètre – marvin