Que des cas connus. Il faudrait fixer cela en effet, mais je pense que
cela n'arrivera qu'avec le jour oů je vais porter xhtml.net sur Pluf et
recoded Plume pour utiliser Pluf.
loďc
Pepper wrote:Yo, J'ai reçu un mail de PHPLizardo http://img29.xooimage.com/files/e/7/f/plume-cms-1.2.3--...-de-code-1584025.pdf Je vous laisse lire, perso pas le temps de corriger.
Dans le document, presque toutes les failles sont proposées avec des solutions qui ne me semblent pas trop complexes à mettre en place. Dois-je modifier les fichiers incriminés en conséquence ?Que des cas connus. Il faudrait fixer cela en effet, mais je pense que cela n'arrivera qu'avec le jour où je vais porter xhtml.net sur Pluf et recoded Plume pour utiliser Pluf. loïc
Avec grand plaisir. Il y a juste un point difficile et je pensais à
celui-là. C'est le dernier. Le problème de la non authentification de la
source de la requête. Mais pour tout le reste c'est ok!
loïc
Je me suis documenté sur ce point (en fait j'ai cliqué sur la première ressource proposée par Google sur le sujet) : http://www.journaldunet.com/developpeur/tutoriel/php/031030php_nexen-xss3.shtmlIl y a juste un point difficile et je pensais à celui-là. C'est le dernier. Le problème de la non authentification de la source de la requête. Mais pour tout le reste c'est ok! loïc
Le coeur du problème de CSRF est qu'une requête falsifiée peut imiter un formulaire. Si vous pouvez, de quelque manière que ce soit, déterminer si votre propre page web a été utilisée pour soumettre le formulaire, vous pouvez pratiquement éliminer le risque d'une attaque un CSRF. Après tout, si l'utilisateur n'a pas demandé le formulaire récemment, pourquoi un formulaire venant de cet utilisateur serait considéré comme valide ? C'est, bien sûr, plus facile à dire qu'à faire, mais il y a quelques moyens techniques pour le faire. Mes techniques préférées sont celles qui impliquent un secret partagé entre le serveur et l'utilisateur légitime. Par exemple, étudiez le listing 3 comme un remplacement du formulaire utilisé pour poster un message sur forum.exemple.org.
<?php
$token = md5(time());
$_SESSION['token'] = $token;
$_SESSION['token_timestamp'] = time();
?>
<form action="/developpeur/add_post.php" method="post">
<input type="hidden" name="token" value="<? echo $token; ?>"
/>
<p>Subject: <input type="text" name="post_subject"
/></p>
<p>Message: <textarea
name="post_message"></textarea></p>
<p><input type="submit" value="Add Post" /></p>
</form>
Jojaba wrote:
Petit retour sur le sujet effectif de ce post. Je viens de terminer de mettre en place le jeton (token). J'ai testé, apparemment ça fonctionne (en tout cas, j'arrive à modifier/créer des utilisateurs en local). Explication de ce que j'ai fait (tout se passe dans le fichier "../manager/users.php".Jojaba, ton approche est la bonne, par contre ton token est facile à "trouver", tu peux commencer avec celui-là et ensuite je trouverai une solution plus robuste.
//To improve security, defining a token
if (empty($_POST['save'])) {
$token = md5(time());
$_SESSION['token'] = $token;
$_SESSION['token_timestamp'] = time();
}
//Verifying token for security reasons
$token = $_POST['token'];
$delay = time() - $_SESSION['token_timestamp'];
if ($token == $_SESSION['token'] && $delay > 5):
endif;
//To improve security
echo form::hidden('token', $token);
Tu peux enlever le timeout mais avoir un token robuste comme cela:
$token = md5(microtime().config::f('secret_key').$_COOKIE['px_session']);
loïc
Tu peux enlever le timeout mais avoir un token robuste comme cela: $token = md5(microtime().config::f('secret_key').$_COOKIE['px_session']);
if(!empty($_GET['msg'])) {
$msg = htmlspecialchars($_GET['msg']);
} else {
$msg = $m->getMessage();
}
if (!empty($msg)) {
echo '<p class="message">'.$msg.'</p>';
}
Sinon, le lien "Valider et mettre en ligne l'article" n'est plus un
lien à cause de la transformation.
Et dans /manager/xmedia.php j'ai passé le $env à :
$env = (!empty($_GET['env'])) ? intval($_GET['env']) : 1;
On 26 nov, 12:59, Jojaba <joj...@gmail.com> wrote:
> Loic d'Anterroches a écrit :Pepper wrote:Yo, J'ai reçu un mail de PHPLizardohttp://img29.xooimage.com/files/e/7/f/plume-cms-1.2.3--...-de-code-1584025.pdfJe vous laisse lire, perso pas le temps de corriger.Que des cas connus. Il faudrait fixer cela en effet, mais je pense que cela n'arrivera qu'avec le jour où je vais porter xhtml.net sur Pluf et recoded Plume pour utiliser Pluf. loïcDans le document, presque toutes les failles sont proposées avec des solutions qui ne me semblent pas trop complexes à mettre en place. Dois-je modifier les fichiers incriminés en conséquence ?