2010-09-13 7 views
1

J'ai un ensemble de fichiers dans un répertoire sécurisé (actuellement sécurisé par .htaccess, seul 'le site' peut accéder à ces fichiers).Fichiers sécurisés avec .htaccess

Les fichiers ne doivent être accessibles qu'aux membres du site; quand ils sont connectés. J'ai eu des liens dans la zone des membres qui sont allés à un script de téléchargement sécurisé - cependant, en utilisant la fonction readfile() a causé des problèmes avec les fichiers sur Browser/OS ie. perdre les terminaisons de ligne, corrompre les fichiers PDF. Donc, je pensais que le meilleur moyen était de permettre aux personnes qui ont cliqué sur le lien (dans le site) d'accéder aux fichiers - par conséquent, ils doivent être connectés en tant que membre. Aller à la ressource avec son URL rediriger vers une page 403 interdite.

Mes compétences .htaccess ne sont pas les meilleures, mais je pensais que le concept serait similaire à l'arrêt de la hotlinking des images?

Toute aide - et savoir si cela est possible - serait grandement appréciée.

Cordialement,

riches

Répondre

1

Quel type de connexion/authentification utilisez-vous? Si vous utilisez la substance régulière auth HTTP, vous pouvez simplement placer ces directives dans le .htaccess Si elle est basée sur la session avec

Require valid-user 

qui permettrait l'accès uniquement à ceux qui ont avec succès connecté., Vous Il va falloir réparer le script PHP intermédiaire, car Apache ne sait rien des sessions PHP. Tout au plus peut-il vérifier la présence/le contenu d'un cookie, mais alors vous feriez confiance au client pour ne pas déranger les contres des cookies.

+0

Je n'utilise pas l'authentification HTTP, la connexion est gérée par PHP. J'avais un script sécurisé fournissant les fichiers, le problème était que grâce à readfile() et à son fonctionnement, les fichiers texte perdaient leur fin de ligne lorsqu'ils étaient ouverts dans le bloc-notes, ce qui est inacceptable. Merci :) – Rich

+0

Peut-être vouloir vérifier comment le fichier a été servi. PHP lui-même ne traduirait pas le fichier de (disons) utf-8 en latin1 ou autre. Mais si vous utilisez un charset et/ou un en-tête de contenu différent, le navigateur est libre de traduire comme bon lui semble. –