IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Sécurité et lisibilité - bonnes pratiques ?


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mai 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2008
    Messages : 248
    Par défaut Sécurité et lisibilité - bonnes pratiques ?
    Bonjour à toutes et à tous,

    J'aimerai avoir votre retour à ce sujet, si je suis sur des bonnes pratiques en faisant cela ou... pas

    1 - Sur certaines pages de mon site, je me connecte à ma BDD
    Au niveau de mon hébergeur, la hiérarchie est la suivante:

    MonDossierUtilisateur
    .............................. Dossier : www => Tout ce qui se trouve dans ce dossier peut être accessible depuis le web (sauf si placé en dossier sécurisé) : exemple : lecture automatique de index.php
    ............................... Dossiers AUTRES => non accessible depuis le web, seul PHP peut y accéder (donc éléments sécurisés d'office, on est d'accord ?)

    Je dispose d'un fichier connexion_bdd.php
    Si je place connexion_bdd.php dans Dossiers AUTRES, le niveau de sécurité est il plus important que si je le place dans dossier www ?

    J'ai toujours un peu de mal avec les "aspirateurs de site" et leur fonctionnement.
    Si j'aspire un site internet, est ce que j'aspire le fichier tel qu'il est sur l'hébergement ou ou ce que je copie un contenu qu'un humain aurait pu lire en ouvrant le code source de la page (dans ce dernier cas de figure, tout ce qui est écrit en php est donc sécurisé par nature)

    2 - Lisibilité de l'URL et 'sécurité' de bas étage
    Imaginons que je dispose d'un dossier ARTICLES qui contient 3 articles

    MonDossierUtilisateur
    .............................. Dossier : www
    .............................. .................... Sous Dossier : ARTICLES => contient 3 articles

    Mon URL aura l'apparence suivante :
    http/monsite/ARTICLES/article1.php

    Si je supprime article1.php => le navigateur m'affiche le contenu de ARTICLES.

    Pour éviter cela, la solution que j'ai en tête est d'utiliser header()
    Si l'URL de ma page est http/monsite/ARTICLES/ => header => page Accueil (par exemple)

    Est ce une bonne pratique ?
    Ou existe t-il d'autres manières de procéder ?
    (L'utilisation du header de cette manière la sous entend d'avoir prévu une redirection pour tous les cas de figure)

    3 - 'Design' de l'URL :
    Si mon URL est http/monsite/ARTICLES/article1.php, il me semble qu'il existe une possible d'afficher http/monsite/
    En revanche si je clique sur la barre, tout apparait.
    Je n'arrive plus à mettre la main sur la manière de procéder.
    Des pistes à me suggérer ? (A moins que j'ai rêvé cela et que cela n'a jamais existe mais il me semble que si)

    La pour le coup, on est seulement sur du 'design'

    D'avance merci pour vos éclaircissements

  2. #2
    Membre émérite
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 441
    Par défaut
    Bonjour,

    Le serveur web est normalement configuré pour interpréter le PHP et ne pas l'afficher à l'internaute, en théorie la sécurité est donc équivalente si le fichier connexion_bdd.php est dans le dossier accessible depuis le web ou non.
    En pratique, c'est toujours mieux et souvent simple de le mettre dans le dossier non accessible depuis le web.
    Un aspirateur de site a les mêmes accès qu'un internaute : il ne pourra donc pas voir le code PHP si le serveur est configuré normalement.

    Pas sûr d'avoir bien compris les autres questions.

    L'affichage du contenu d'un dossier dépend de la configuration du serveur web, via Apache on peut désactiver l'indexation via Options -Indexes : https://httpd.apache.org/docs/2.4/mod/core.html#options
    Si l'url de la page est https://monsite.com/articles mais que cette url ne correspond à aucune page, le serveur devrait alors retourner/rediriger une page 404.

    L'URL affichée dans le navigateur doit correspondre à la page visitée. C'est une mauvaise pratique d'afficher une fausse URL dans le navigateur car l'internaute ne pourra pas mémoriser l'URL ou la mettre en favoris pour y revenir facilement.
    Si tu ne rêves pas, essaye de nous donner un exemple si possible.

  3. #3
    Membre éclairé
    Inscrit en
    Mai 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2008
    Messages : 248
    Par défaut
    Bonjour

    Merci pour ton retour

    1 -
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Le serveur web est normalement configuré pour interpréter le PHP et ne pas l'afficher à l'internaute, en théorie la sécurité est donc équivalente si le fichier connexion_bdd.php est dans le dossier accessible depuis le web ou non.
    En pratique, c'est toujours mieux et souvent simple de le mettre dans le dossier non accessible depuis le web.
    Un aspirateur de site a les mêmes accès qu'un internaute : il ne pourra donc pas voir le code PHP si le serveur est configuré normalement.
    Je te remercie pour ta réponse qui conforte l'idée que je m'en faisais.
    Côté serveur, je suis sur une offre mutualisée donc j’image que la configuration est correcte.
    Je vais leur poser la question par acquis de conscience mais leur réponse devrait concorder avec un non affichage pour l'internaute.

    Merci également pour la réponse concernant l'aspirateur de site. C'est un des points qui me fait un peu peur donc je solde petit à petit ce genre de question.

    2 -
    Le dossier racine sur mon hébergement est www (affichage du nom de domaine en lien URL) => www.mondomaine.com
    J'ai placé dans mon dossier www, un sous dossier Articles qui contient X page php. Chaque page php contient un article (je procède de cette manière là pour répondre le plus possible au SEO).

    Si un utilisateur va sur un article, l'URL prend donc la forme suivante :
    www.mondomaine.com/Articles/mon_article.php

    Si l'utilisateur supprime dans la barre d'adresse "mon_article.php", l'URL devient alors =>www.mondomaine.com/Articles/ et le navigateur affiche tout le contenu du dossier Articles.

    Si je comprends bien, il s'agit de la configuration du serveur mutualisé qui n'affiche pas d'erreur 404 quand cela se produit ?

    Puisque je ne peux pas modifier cela (je vais leur demander), je pensais utiliser la fonction header().

    Dans le cas présent, si l'utilisateur supprime "mon_article.php", alors mon URL sera =>www.mondomaine.com/Articles/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if(URL=>www.mondomaine.com/Articles/ )
    {
    header(Je redirige le visiteur sur www.mondomaine.com par exemple )
    }
    3 -
    Pour l'URL, l'idée n'est pas de modifier la valeur réelle de l'URL mais de masquer certaines informations (sauf si l'utilisateur clique dans la barre URL).
    Par exemple, imaginons que je récupère des informations via $_GET
    L'URL pourrait être http://www.mondomaine.com?page=2&num...prenom=Andrew&.....

    Est-il possible d'afficher simplement :
    www.mondomaine.com?page=2

    Et si le visiteur clique dans la barre alors la toute l'adresse s'affiche :
    http://www.mondomaine.com?page=2&num...prenom=Andrew&.....

    J'espère avoir été plus clair sur mon second message

    Encore un grand merci pour l'aide apportée

  4. #4
    Membre émérite
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 441
    Par défaut
    L'affichage du contenu du dossier vient surement de l'indexation activée sur le serveur web, tu devrais pouvoir le désactiver via un fichier .htaccess en mutualisé (ton hébergeur pourra mieux te renseigner).

    Ta dernière question concerne l'URL Rewriting, tu devrais trouver des infos en faisant une recherche avec ces termes.
    Avec Apache, on utilisera mod_rewrite : https://httpd.apache.org/docs/2.4/fr/rewrite/intro.html

  5. #5
    Membre chevronné
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2022
    Messages
    373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2022
    Messages : 373
    Par défaut
    Bonjour,

    3) Quel est l'intérêt de cacher / afficher les datas dans l'url ?
    Parce que je comprend pas.
    Si tu veux formatter l'url pour le rendre plus lisible , un petit truc js ou équivalent c'est faisable.
    Mais je connais pas d'event js qui permettent de détecter quand tu cliques dans la barre de recherche.
    Donc bon ... Un event blur sur window ... Bof hein ...

    2) C'est un cas d'exemple ou tu parles sincèrement de supprimer un fichier php nommé article.php ?

    Cdt

  6. #6
    Membre éclairé
    Inscrit en
    Mai 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2008
    Messages : 248
    Par défaut
    Bonjour,

    Merci pour vos retours.

    Mon hébergeur va m'envoyer de la doc au sujet de l'indexation / .htaccess
    Je vais avoir un peu de lecture

    Je parcours le lien que tu m'as communiqué au sujet de l'URL Rewriting

    @gabi7756 :
    3) C'est plus pour de l'esthétique et puis une personne qui n'y connais pas grand chose n'aura pas l'idée de changer un $_GET (par exemple) s'il ne voit pas de transmission dans l'URL.
    Même si ce n'est pas a ce niveau que l'on protège je suis d'accord.

    Je n'ai malheureusement pas encore de connaissance en js.

    2) Non c'est simplement une suppression dans l'URL. Et dans certains cas, cela amène à afficher le contenu de mon dossier dans sa totalité.
    C'est la réponse de @Pytet ci-dessus sur l'indexation que je dois creuser.

    Encore merci pour vos retours

  7. #7
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 420
    Par défaut
    Citation Envoyé par BOU59000 Voir le message

    Si l'utilisateur supprime dans la barre d'adresse "mon_article.php", l'URL devient alors =>www.mondomaine.com/Articles/ et le navigateur affiche tout le contenu du dossier Articles.
    Si tu veux éviter ça, dans ton dossier "Articles" tu crées un fichier nommé "index.php" dans lequel tu mets ce que tu veux, et donc le navigateur affichera le contenu de ce fichier si l'adresse est www.mondomaine.com/Articles/. C'est un moyen pratique d'éviter de lister le contenu d'un répertoire sans avoir besoin de modifier autre chose.

  8. #8
    Membre éclairé
    Inscrit en
    Mai 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2008
    Messages : 248
    Par défaut
    Citation Envoyé par ABCIWEB Voir le message
    Si tu veux éviter ça, dans ton dossier "Articles" tu crées un fichier nommé "index.php" dans lequel tu mets ce que tu veux, et donc le navigateur affichera le contenu de ce fichier si l'adresse est www.mondomaine.com/Articles/. C'est un moyen pratique d'éviter de lister le contenu d'un répertoire sans avoir besoin de modifier autre chose.
    Bonjour,

    Génial
    C'est tout simplement une super idée de procéder de cette manière la plutôt que de devoir gérer toutes les possibilités avec des header() ci et la

    Un grand merci à toi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Bonnes pratiques de protections individuelles
    Par Community Management dans le forum Sécurité
    Réponses: 23
    Dernier message: 11/06/2024, 11h23
  2. Réponses: 7
    Dernier message: 02/11/2005, 15h30
  3. [Bonne pratique]Stratégie d'allocation
    Par jowo dans le forum C
    Réponses: 1
    Dernier message: 05/10/2005, 14h47
  4. [FOREIGN K] Valeur de champ = nom de table. Bonne pratique ?
    Par Seb des Monts dans le forum Langage SQL
    Réponses: 9
    Dernier message: 17/05/2005, 10h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo