Protection contre les failles CSRF

devlop78
Invité n'ayant pas de compte PHPfrance

22 janv. 2011, 02:35

Concernant les zones admin, je ne vois pas bien l'utilité d'un token. Si un admin quitte son application sans avoir mis fin à sa session et que quelqu'un passe juste derrière lui, avec ou sans token, ça sera pareil. Le plus important selon moi dans les zones admin est de sécuriser la connexion à l'espace administrateur et d'interdire que l'identifiant de session puisse passer dans l'url.
Je ne suis pas d'accord. Avec le token, il aura une difficulté largement supplémentaire. Ajouté à cela l'utilisation de POST, des "timeout" de connexion (par exemple au bout de 2 minutes quitte à lancer toutes les minutes un petit script AJAX pour relancer la bestiole), des demandes de confirmation, des demandes de réidentification pour des tâches vraiment importantes, etc, et ça garantit un sérieux frein à d'éventuelles attaques CSRF. Je pars du principe bien sûr que le site est sain et non sujet au XSS, et où alors un token est vraiment difficile à obtenir (d'autant plus s'il est volatile, spécifique, etc).

ViPHP
xTG
ViPHP | 7331 Messages

30 janv. 2011, 08:23

Un lien ? Pas forcément. Tu es sur ta zone admin, et tu te dis ... tiens ! Je vais sur forum.phpfrance.com ... et Vlan ! PhpFrance a ton token ... mais il a pas ta session ... Mais on sait qu'ils sont vicieux sur ce forum là et qu'ils génèrent des images CSRF ^^
Oui mais cela reviendrai à modifier l'url sans enlever les arguments aussi, c'est pareil pour ce cas là faut être tordu...
I'm here : posting.php?mode=quote&f=24&p=347363
I wanna go there now : http://www.google.com/posting.php?mode= ... 4&p=347363
8-|

Mammouth du PHP | 1511 Messages

30 janv. 2011, 13:46

Pour qu'il y ait transmission de l'url, il faut que le referrer suive, hors, il faut juste nécessairement un lien pour qu'il y ait transmission du referer.
Cela m'étonnerait fortement que tu mettes des liens vers d'autres sites au sein de ton site internet ? Ou alors, dans ce cas, utilises anonym.to pour fournir une url externe.

devlop78
Invité n'ayant pas de compte PHPfrance

31 janv. 2011, 00:16

Pour qu'il y ait transmission de l'url, il faut que le referrer suive, hors, il faut juste nécessairement un lien pour qu'il y ait transmission du referer.
Cela m'étonnerait fortement que tu mettes des liens vers d'autres sites au sein de ton site internet ? Ou alors, dans ce cas, utilises anonym.to pour fournir une url externe.
On va pas rentrer dans des débats. Il ya des risques avec plus ou moins de probabilité. Là où il y a un risque, aussi faible soit-il, il y a utilité de le savoir. Après, le besoin de sécurité n'en vaut pas forcément la chandelle. Pour la transmission du referer, il n'est pas utile de cliquer sur un lien. Etre sur une page et taper l'adresse d'un site sur la meme page donne lieu à une transmission de referer. C'est tordu, certes, mais pas moins que la plupart des attaques de gros sites bien protégés ou même l'échec de certaines transactions due à une multitudes de "pas de bol". Et les transactions sont bien là pour ne pas faire planter un système bancaire avec ce 0.000005 % de risques. Après il y a le risque de la coupure électrique en plein COMMIT ... quelle probabilité ? proche de 0 ... mais de là à dire qu'il faut l'ignorer ... c'est tordu, on peut l'ignorer dans le développement, mais mieux vaut le savoir quand même :p