New :
+ * Core :
+ - Tighten security when changing password. -Car
+
* Documentation :
- Display ChangeLog in site. -Car
- Bounty: link bug reports from Changelog. -MC
return false;
exit;
}
- str = hash_encrypt(document.forms.changepass.nouveau.value);
+
+ old_pass = hash_encrypt(document.forms.changepass.ancien.value);
+
+ str = old_pass + ":" +
+ document.forms.changepass.challenge.value;
+ document.forms.changepass2.response.value = hash_encrypt(str);
+
+ str = hash_xor(hash_encrypt(document.forms.changepass.nouveau.value), old_pass);
document.forms.changepass2.response2.value = str;
+
alert ("Le mot de passe que tu as rentré va être chiffré avant de nous parvenir par Internet ! Ainsi il ne circulera pas en clair.");
document.forms.changepass2.submit();
return true;
require_once('xorg.inc.php');
-if (Env::has('response2')) {
+if (Post::has('response2')) {
require_once('secure_hash.inc.php');
- $_SESSION['password'] = $password = Post::get('response2');
+ if (hash_encrypt($_SESSION['password'].":".$_SESSION['session']->challenge) != Post::get('response')) {
+ new_skinned_page('motdepasse.tpl', AUTH_MDP);
+ $page->addJsLink('javascript/motdepasse.js');
+ $page->assign('xorg_title','Polytechnique.org - Mon mot de passe');
+ $page->trig('Ancien mot de passe erronné');
+ $page->run();
+ }
+ $password = hash_xor(Post::get('response2'), $_SESSION['password']);
+ $_SESSION['password'] = $password;
$globals->xdb->execute('UPDATE auth_user_md5 SET password={?} WHERE user_id={?}', $password, Session::getInt('uid'));
</tr>
<tr>
<td class="titre">
+ Ancien mot de passe :
+ </td>
+ <td>
+ <input type="hidden" name="challenge" value="{$smarty.session.session->challenge}" />
+ <input type="password" size="10" maxlength="10" name="ancien" />
+ </td>
+ </tr>
+ <tr>
+ <td class="titre">
Nouveau mot de passe :
</td>
<td>
</form>
<form action="{$smarty.server.REQUEST_URI}" method="post" id="changepass2">
<p>
+<input type="hidden" name="response" value="" />
<input type="hidden" name="response2" value="" />
</p>
</form>