Nu, tad moku savu autorizēšanās sistēmu. Bet, jo vairāk meklēju info par to, jo vairāk saduros ar nepārliecību savam skriptam :\
Vēlētos noskaidrot vai man ar šo pietiktu? Kas man tur lieks un ko vēl vajadzētu? Kā būtu labāk.. jo cik dzirdēju, tagad jebkurš var nostopēt sessijas datus utt.. (Bija Alekseja rakstiņš forumā, kkas tāds..) Tāpēc tagad jāsāk vairāk baidīties ^^
function user_authentication(){
global $db;
@session_start();
$user_id = isset($_SESSION['uid']) ? $_SESSION['uid'] : false;
$session_token = isset($_SESSION['stoken']) ? $_SESSION['stoken'] : false;
$visitor_token = md5(getip() . $_SERVER['HTTP_USER_AGENT']);
if(is_numeric($user_id) AND $session_token == $visitor_token){
$uChData = $db->get_row(sprintf("SELECT ID, user_salt FROM " . DBP . "users WHERE ID = %d AND Ses_token = '%s'", si($user_id), si($session_token)));
if(empty($uChData)){ //Session data belong to noone
//Destroy useless token and user id
unset($_SESSION['stoken']);
unset($_SESSION['uid']);
return false;
}else{ //Proceed if we are authenticated
//Set authentication data
$this->uid = $uChData->ID;
$this->user_salt = $uChData->user_salt;
$this->loggedin = true;
//updates last seen time
$this->update_last_seen_time();
//Regenerate session ID to prevent session fixation attacks
session_regenerate_id();
return true;
}
}else{ return false; }
}
http://shiflett.org/articles/session-hijacking šeit smēlos nedaudz informāciju, bet wtf? Es īsti nesaprotu par to pēdējo koda daļu, kāda jēga vienkārši sessijā uzģenerēt kkādu token? :O Ko pēc tam viņš ar viņu dara? Man token vairāk asociējas ar kko, kas identificē no lietotāja puses šajā gadījumā.. Kā būtu, ja katru reizi, kad lapa tiek atjaunota, tiktu izsniegts lietotājam jauns token cepumā? :?
Edited by ezis, 2011.01.18 03:37.












