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

Langage PHP Discussion :

Sécurité coté programmation


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Urbaniste
    Inscrit en
    Mai 2018
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Mai 2018
    Messages : 275
    Par défaut Sécurité coté programmation
    Bonjour a tous.

    Pour sécuriser mon site, j'ai créé un dossier racine ou pointe mon site internet (index.php)

    et mes script sont un niveau au dessus

    - prive -> le_vrai_index.php et dossiers et mes fonctions
    - public -> racine / index.php

    D'après ce que j'ai compris le fait de mettre ses fichiers et fonctions un niveau au dessus de la racine les rends inexploitables depuis l'extérieur.

    Pouvez vous me confirmer que j'ai bien compris et que c'est une bonne pratique.


    Une autre questions faut-il éviter de donner des noms génériques a ses fichiers du style : root.php admin.php
    S'ils sont a la racine je pense qu'il faut éviter, mais s'ils sont dans un dossier au dessus je me demande si c'est utile ????

    Ou en cas de faille -> ../admin.php risque aussi d être exploitable

    C'est peut être pas très clair, mais j'espère que vous comprenez ce que je veux dire dans l'esprit.

    Pour se prémunir faut savoir comment ça marche... mais comme je n'ai pas le niveau d'exploiter mes failles... je ne sais pas faire la différence être l'utile et le superflus...

    Merci pour votre aide... et si vos réponses sont pédagogiques c'est encore mieux.

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    Citation Envoyé par scamphp Voir le message

    D'après ce que j'ai compris le fait de mettre ses fichiers et fonctions un niveau au dessus de la racine les rends inexploitables depuis l'extérieur.
    Ils ne sont pas directement exploitable et sont invisibles, ce qui est déjà un très bon point. Mais tout dépend de la sécurité de ton index.php dans public. S'il a une vulnérabilité, on peut s'en servir pour accéder à tout le reste.
    Citation Envoyé par scamphp Voir le message
    Pouvez vous me confirmer que j'ai bien compris et que c'est une bonne pratique.
    Oui, et c'est une bonne pratique.

    Citation Envoyé par scamphp Voir le message
    Une autre questions faut-il éviter de donner des noms génériques a ses fichiers du style : root.php admin.php
    C'est de la sécurité par l'obscurité, ça n'a pas vraiment d'intérêt (ça donne une certaine défense en profondeur, mais bon le gain n'est pas important) car l'attaquant testera de toutes façons toutes les attaques possibles sur tous les fichiers qu'il peut atteindre, quel que soit le nom du fichier.

    C'est surtout recommandé lorsqu'on utilise des CMS comme Wordpress, Drupal ou Joomla et qu'on est dans un hébergement mutualisé où tous les fichiers sont dans un répertoire public donc directement accessibles, et qui dont les noms des fichiers sont toujours les mêmes. Lorsque des fichiers de ces CMS ont des vulnérabilités, il existe des robots qui scannent automatiquement tous les sites à la recherche du fichier vulnérable afin de les exploiter. Dans ce cas, renommer le fichier, modifier l'URL de l'admin etc... peuvent avoir un intérêt.

    Dans tous les cas, l'idéal c'est de ne pas avoir de vulnérabilités en maîtrisant les différentes failles possibles et comment les éviter; et comme on ne parvient pas toujours à écrire un code sans défaut, il faut utiliser un bon parefeu bien configuré, ou un dispositif comme modSecurity.

  3. #3
    Membre éclairé
    Homme Profil pro
    Urbaniste
    Inscrit en
    Mai 2018
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Mai 2018
    Messages : 275
    Par défaut
    Clair, net précis j'adore.... merci

    Je suppose que c'est la même chose pour le nom des variables ?

    C'est de la sécurité par l'obscurité, ça n'a pas vraiment d'intérêt (ça donne une certaine défense en profondeur, mais bon le gain n'est pas important) car l'attaquant testera de toutes façons toutes les attaques possibles sur tous les variables qu'il peut atteindre, quel que soit le nom de la variable.

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Pour les variables c'est encore moins utile et c'est même pas recommandé puisque ça va te rendre le développement compliqué.
    Il existe des obfuscateurs qui font ce genre de chose pour toi mais en PHP l'intérêt est limité à certains cas très particulier. On les utilise plus en javascript où le code source est directement disponible à tout le monde.

    Concernant les nom de fichier , un serveur web bien configuré , qui empèche de lister le contenu du dossier est bien plus efficace par exemple.

    Les points que tu abordes doivent en effet être pris en compte , mais il sont plutôt la deuxième barrière quand l'attaquant à déjà pénétré le système.
    Concentre toi plutôt sur :
    - Les injections SQL
    - La validation des données saisie
    - Les failles courantes type XSS et CSRF
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Citation Envoyé par grunk Voir le message
    Concentre toi plutôt sur :
    - Les injections SQL
    - La validation des données saisie
    - Les failles courantes type XSS et CSRF
    Je confirme : un attaquant ne va pas s'embêter à aller éplucher le code source, si mettre admin et ' OR 1='1 dans le formulaire de login lui permet d'accéder à toute l'application.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  6. #6
    Membre éclairé
    Homme Profil pro
    Urbaniste
    Inscrit en
    Mai 2018
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Mai 2018
    Messages : 275
    Par défaut
    J'ai pour habitude aussi de faire dans l'index
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if ( ! defined( 'URL' ) ) {
     
    	define( 'URL', dirname( __DIR__ ) );
    Puis dans chaque fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ( !defined( 'URL' ) ) exit ();
    Pour vérifier que le fichier est bien appelé par l'index

    Vous allez me dire que c'est inutile aussi ???


    On me dit souvent que j’enfile 3 slips et que cela ne sert a rien

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

Discussions similaires

  1. [Android] Besoin d' aide - Sécurité en programmation android
    Par Ado_88 dans le forum Mon application mobile
    Réponses: 0
    Dernier message: 16/09/2014, 11h27
  2. Sécurité coté client - WCF
    Par FrancisT dans le forum Windows Communication Foundation
    Réponses: 6
    Dernier message: 24/02/2012, 18h27
  3. Sécurité sur programme Shell
    Par coincoin22 dans le forum Linux
    Réponses: 9
    Dernier message: 30/08/2007, 20h07
  4. [Cgi] Sécurité du Programme c
    Par ankou82 dans le forum C
    Réponses: 19
    Dernier message: 14/06/2006, 11h38

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