Bonjour,
Comment sécuriser un formulaire avec transfert d'images sous WordPress ?
Est ce qu'un installant un Https ça suffit ?
Merci,
Christophe
Bonjour,
Comment sécuriser un formulaire avec transfert d'images sous WordPress ?
Est ce qu'un installant un Https ça suffit ?
Merci,
Christophe
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 ?
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.
...Je trouve quand même plus simple d'avoir un nom fixe associé à une variable :
enfin bon c'est une histoire de goût qui ne change rien niveau sécurité.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <input type="hidden" name="token" value="avicozaxowedukotukag94128" />
@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...
Bonjour
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.
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
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[$_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>
...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.
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>
Bonjour
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.
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager