Se connecter

Informatique

Création de sites web

Sujet : Se protéger contre le CSRF
1
PillsDispenser
Niveau 51
10 novembre 2018 à 11:49:45

Bonjour,

Comment se protéger car j'ai des gens qui s'amusent a créer 1000 comptes à la seconde et pourtant je pensais que c'était suffisant comme protection..


if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_SESSION['token']) && isset($_POST['token']) && !empty($_SESSION['token']) && !empty($_POST['token']) && $_SESSION['token'] === $_POST['token'] && hash_equals($_SESSION['token'], $_POST['token']) === true)
{

}
illuminati5451
Niveau 6
10 novembre 2018 à 17:07:33

Il faut un captcha qui remplira ton $_SESSION['token']

20_cent_2017
Niveau 10
10 novembre 2018 à 18:50:03

Le 10 novembre 2018 à 17:07:33 illuminati5451 a écrit :
Il faut un captcha qui remplira ton $_SESSION['token']

Ne recompte pas de bêtise !

deepblue
Niveau 13
10 novembre 2018 à 23:27:32

Un token csrf ne protège pas contre ce type d'attaque.

PillsDispenser
Niveau 51
11 novembre 2018 à 00:52:42

Le 10 novembre 2018 à 23:27:32 deepblue a écrit :
Un token csrf ne protège pas contre ce type d'attaque.

Comment alors ? Il sert a quoi alors ?

tbol
Niveau 19
11 novembre 2018 à 13:36:18

Et pourquoi pas un truc comme ça plutôt : reCAPTCHA : https://www.google.com/recaptcha/intro/v3.html

deepblue
Niveau 13
11 novembre 2018 à 15:58:09

@PillsDispenser https://fr.wikipedia.org/wiki/Cross-site_request_forgery

Il n'y a pas de méthode magique. Contre les robots stupides, tu peux utiliser cette méthode https://www.deblan.io/tag/1/flood . Je l'utilise sur pas mal de mes sites web et ça fonctionne bien. Sur mon blog, j'ai d'ailleurs utiliser un trick pour que les gens puissent poster sans avoir le javascript d'activé.
Pour les bots développés "sur-mesure", tu n'as pas beaucoup d'alternatives simples, la plus connue et répondu reste le captcha mais ce n'est pas parfait.

20_cent_2017
Niveau 10
11 novembre 2018 à 20:32:39

Le 11 novembre 2018 à 15:58:09 deepblue a écrit :
@PillsDispenser https://fr.wikipedia.org/wiki/Cross-site_request_forgery

Il n'y a pas de méthode magique. Contre les robots stupides, tu peux utiliser cette méthode https://www.deblan.io/tag/1/flood . Je l'utilise sur pas mal de mes sites web et ça fonctionne bien. Sur mon blog, j'ai d'ailleurs utiliser un trick pour que les gens puissent poster sans avoir le javascript d'activé.
Pour les bots développés "sur-mesure", tu n'as pas beaucoup d'alternatives simples, la plus connue et répondu reste le captcha mais ce n'est pas parfait.

Pas mal, par contre pas de js vanilla et un gros problème RGPD puisque que tu stocks tous les data du visiteurs

deepblue
Niveau 13
12 novembre 2018 à 10:04:09

1. l'article a 4 ans et à l'époque j'utilisais jQuery. Actuellement, cette méthode est écrite en vanilla js (https://gist.deblan.org/en/view/5be93f407c78b )

2. l'article a 4 ans et pas de RGPD à l'époque. Pour autant, les cookies sont acceptés à la première visite et générés par moi (et y'en a aucun aujourd'hui si ce n'est celui de session), les données GET et POST sont nécessaires au fonctionnement du système de commentaire et les autres données de la requête ($_SERVER) sont du log et il n'y a aucun traitement derrière. J'avais décidé de les enregistrer mais les gens font ce qu'ils veulent. Typiquement, je ne le fais plus aujourd'hui car à part créer du log volumineux, ça ne me servirait à rien.

3. Enfin, 99% des données récupérées étaient celles des bots. Le 1% restant étaient des navigateurs de barbus sans javascript. Comme je l'ai évoqué dans ma première réponse, le problème est résolu car maintenant tu peux poster un commentaire sans javascript. Vous pouvez tester sur cet article si vous voulez : https://www.deblan.io/post/549/test

1
Sujet : Se protéger contre le CSRF
   Retour haut de page
Consulter la version web de cette page