[aur-dev] [PATCH 5/5] check if new SessionID already exists
Lukas Fleischer
archlinux at cryptocrack.de
Fri Jun 24 10:09:07 EDT 2011
On Wed, Jun 22, 2011 at 09:36:44PM +0200, Florian Pritz wrote:
> Signed-off-by: Florian Pritz <bluewind at xinu.at>
> ---
> web/lib/aur.inc.php | 12 ++++++++++--
> 1 files changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/web/lib/aur.inc.php b/web/lib/aur.inc.php
> index 382578c..3d1688a 100644
> --- a/web/lib/aur.inc.php
> +++ b/web/lib/aur.inc.php
> @@ -89,8 +89,16 @@ function new_sid() {
>
> $rand_str = substr(md5(mt_rand()),2, 20);
>
> - $id = $rand_str . strtolower(md5($ts.$pid)) . mt_rand();
> - return strtoupper(md5($id));
> + $id = strtoupper(md5($rand_str . strtolower(md5($ts.$pid)) . mt_rand()));
> +
> + $dbh = db_connect();
> + $q = "SELECT SessionID FROM Sessions WHERE `SessionID` = '".mysql_real_escape_string($id)."'";
> + $result = db_query($q, $dbh);
> + if (mysql_num_rows($result) == 0) {
> + return $id;
> + } else {
> + return new_sid();
> + }
-1. new_sid() is (mis-)used at some other places as well, plus there's
an additional check in try_login() which ensures we don't use the same
session ID twice (even tough there's only a 8.27E-25 chance this will
ever happen).
> }
>
>
> --
> 1.7.5.4
More information about the aur-dev
mailing list