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

Sécurité Discussion :

Sécuriser formulaire avec images


Sujet :

Sécurité

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    907
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 907
    Points : 372
    Points
    372
    Par défaut Sécuriser formulaire avec images
    Bonjour,

    Comment sécuriser un formulaire avec transfert d'images sous WordPress ?

    Est ce qu'un installant un Https ça suffit ?

    Merci,
    Christophe

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    HTTPS sert à chiffrer les données qui transitent entre la machine cliente et la machine qui héberge ton application web.
    C'est tout, cela ne sert pas à sécuriser un formulaire.

    Tu veux faire quoi exactement ? contrôler avant un upload le poids, la taille où l'extension d'un fichier ?

  3. #3
    Membre émérite
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 756
    Points : 2 990
    Points
    2 990
    Par défaut
    Bonjour

    Si tu es développeur, tu dois absolument, toujours, insérer un token dans le formulaire. Il s'agira d'un code long et unique que tu vas générer, au plus tard, à l'affichage du formulaire. Tu stockes le token dans la session de l'utilisateur.

    Exemple : <input type="hidden" name="avicozaxowedukotukag94128" value="1"/>

    Ensuite, à la soumission du formulaire, ton code php va vérifier que le token est bien présent et qu'il vaut la valeur 1. Si c'est le cas, c'est donc que le submit vient bien du formulaire.
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 382
    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 382
    Points : 10 410
    Points
    10 410
    Par défaut
    ...Je trouve quand même plus simple d'avoir un nom fixe associé à une variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="token" value="avicozaxowedukotukag94128" />
    enfin bon c'est une histoire de goût qui ne change rien niveau sécurité.

    @cjacquel
    Ta question n'est pas assez précise/détaillée. On pourrait croire aussi que tu veux interdire l'accès aux images etc...

  5. #5
    Membre émérite
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 756
    Points : 2 990
    Points
    2 990
    Par défaut
    Bonjour

    Citation Envoyé par ABCIWEB Voir le message
    ...Je trouve quand même plus simple d'avoir un nom fixe associé à une variable :
    Parfaitement plus simple et donc plus facile à casser. Si ton code est le même quelque soit la page, le site, l'utilisateur, le moment de la journée, etc., un script pourra être développé où on forcerait ce champs.

    L'idée du token est d'être parfaitement "aléatoire" et associé à un utilisateur pour une session précise, sur un site précis.
    Dans ce cas, l'idée d'un script de spam devient impossible.
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 382
    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 382
    Points : 10 410
    Points
    10 410
    Par défaut
    Y'a pas de différence de sécurité entre les deux puisque dans ton exemple la partie variable est le nom de la variable et sa valeur est fixe alors que dans mon exemple le nom de la variable est fixe et sa valeur est variable...
    Concrètement que tu fasses
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
    session_start();
    if(isset($_SESSION['token'],$_POST[$_SESSION['token']]) && $_POST[$_SESSION['token']] == 1)
    {
      // traitement du formulaire ...
      var_dump($_POST); 
    }
    $uniqid = sha1(uniqid(true));
    $_SESSION['token'] = $uniqid;
    ?>
    <form method = "post" action = "#">
    <input type = "hidden" name = "<?=$uniqid?>" value = "1" />
    <input type = "text" name = "texte" />
    <input type = "submit" value = "ok" />
    </form>
    ou que je fasse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
    session_start();
    if(isset($_SESSION['token'],$_POST['token']) && $_SESSION['token'] == $_POST['token'])
    {
      // traitement du formulaire ...
      var_dump($_POST); 
    }
    $uniqid = sha1(uniqid(true));
    $_SESSION['token'] = $uniqid;
    ?>
    <form method = "post" action = "#">
    <input type = "hidden" name = "token" value = "<?=$uniqid?>" />
    <input type = "text" name = "texte" />
    <input type = "submit" value = "ok" />
    </form>
    ...dans les deux cas pour que le traitement ait lieu sans passer par le formulaire il faut pouvoir pirater $_SESSION['token']. Si quelque chose m'a échappé merci d'éclairer ma lanterne.

  7. #7
    Membre émérite
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 756
    Points : 2 990
    Points
    2 990
    Par défaut
    Bonjour

    Citation Envoyé par ABCIWEB Voir le message
    Si quelque chose m'a échappé merci d'éclairer ma lanterne.
    Ok, je comprends mieux ce que tu voulais dire; merci pour ton code.

    Je préfère la première option (nom variable) car un script ne pourra jamais la deviner. Je t'accorde que, en partie 'value', ma réponse ci-devant s'applique aussi.

    Il faudrait tester à fond les différences toutefois :

    1. la méthode "nom" variable est celle utilisée par un CMS comme Joomla. Je ne sais pas pour les autres.
    2. mon intuition me dit que c'est mieux ainsi car le blocage se fait un peu plus tôt : dans ton cas, le code php va exécuter "Est-ce ma variable token?" Réponse OUI puis "Est-ce la bonne valeur". On a donc "passer" l'étape du "est-ce ma variable". Dans le cas du nom variable; le test va échouer au premier contrôle. Est-ce que cela fait une différence fondamentale, non, je ne crois pas. Reste que, perso, j'aime bien fermer la porte dès que possible.

    Bien à toi.
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  8. #8
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 382
    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 382
    Points : 10 410
    Points
    10 410
    Par défaut
    Citation Envoyé par cavo789 Voir le message
    1. la méthode "nom" variable est celle utilisée par un CMS comme Joomla. Je ne sais pas pour les autres.
    Je pense que c'est pour des raisons historiques, la "fameuse" époque du register_globals activé qui faisait qu'on pouvait faire passer une variable get pour une variable de session dans un code un peu approximatif. Mais bon register_globals est obsolète depuis php 5.3 et supprimé en php 5.4. On est enfin tranquille

Discussions similaires

  1. [XL-2010] Remplir un tableau à l'aide d'un formulaire avec image
    Par soso882 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/08/2014, 09h51
  2. Formulaire avec image
    Par alain78 dans le forum Langage
    Réponses: 2
    Dernier message: 07/02/2012, 14h47
  3. [WinForms]Lenteur d'affichage formulaire avec image de fond
    Par olixelle dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 06/09/2006, 14h06
  4. Formulaire avec images
    Par chti_juanito dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 15/07/2006, 12h58
  5. Formulaire et bouton submit avec image mapée
    Par dody dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 06/12/2004, 16h00

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