2 votes

Inclure en toute sécurité les variables de connexion à la base de données

Lorsque je me connecte à ma base de données, je include('connect.php') le document à connecter. Maintenant, je veux le faire de manière un peu plus sûre. Est-il possible de vérifier que celui qui veut inclure l'élément connect.php est de mon domaine. Comme :

if($_SERVER["HTTP_REFERER"] == "mydomain.com"){
    $link = mysql_connect("localhost","user","password"); 
    mysql_select_db("dbname");
}

Et si c'est possible, comment puis-je vérifier que $_SERVER["HTTP_REFERER"] == mydomain.com quand $_SERVER["HTTP_REFERER"] peut retourner mydomain.com/page.php ?

5voto

deceze Points 200115

Ce n'est pas un problème qui peut être résolu avec PHP. Si quelqu'un peut inclure le fichier juste comme ça, la sécurité du serveur est déjà compromise. C'est le travail du serveur web d'empêcher la distribution de fichiers PHP bruts et le travail de la sécurité du système d'exploitation et des paramètres utilisateur d'empêcher l'inclusion de fichiers par des utilisateurs/processus non autorisés. Si quelqu'un a un accès suffisant au fichier pour pouvoir l'inclure, il a un accès suffisant pour le lire, auquel cas aucune des mesures de sécurité que vous avez mises dans le fichier ne sera exécutée.

En résumé, ne vous inquiétez pas :)

EDITAR:

Quelque chose comme ça :

RewriteEngine On
RewriteRule ^connect.php /index.php [R]

Cela peut changer en fonction de vos particularités, regardez dans la section une multitude de questions sur ce sujet.

1voto

djn Points 3015

Il me semble que vous le faites à l'envers.

Le moyen le plus simple de sécuriser votre connect.php est de le déplacer d'un dossier vers le haut (en dehors du root web) et d'utiliser include('../connect.php') au lieu de include('connect.php') . Faites-le et vous serez en sécurité. connect.php au moins).

HTTP_REFERER n'a rien à voir avec la sécurité. Si vous le vérifiez, le visiteur recevra simplement un message d'erreur Database connection error au lieu de la page demandée si la vérification échoue. Elle échouera à chaque fois :

  1. quelqu'un vient sur votre site en suivant un lien sur un autre site (y compris Google et cie)
  2. quelqu'un arrive sur votre site en cliquant sur un signet de navigateur
  3. quelqu'un arrive sur votre site en tapant l'adresse directement dans la barre d'adresse.

D'une certaine manière, je ne crois pas que ce soit quelque chose que tu veuilles.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X