Seite 1 von 1

SID selber generieren

Verfasst: 09.01.2005 13:23
von Lumio
Hi!
Wollt mal fragen, wie ihr die SID generiert.

Verfasst: 09.01.2005 13:30
von marino
eine sessions-id kann man nicht generieren .. die wird vom system ( dem server und der datenbank) festgelegt und beinhaltet wichtige infos die der kennung des users diehnen...

Verfasst: 09.01.2005 14:10
von Lumio
Wie mach ich sowas?
Das hier hab ich gefunden:

Code: Alles auswählen

		$session_id = md5(uniqid($user_ip));

		$sql = "INSERT INTO " . SESSIONS_TABLE . "
			(session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in)
			VALUES ('$session_id', $user_id, $current_time, $current_time, '$user_ip', $page_id, $login)";
Jedoch, wie bekomm ich die $user_ip?

Verfasst: 09.01.2005 14:19
von marino
??????????????????


erstens steht vor dem ein tolles kürzel md5 .. das ist eine codierungsart...

zweitens was willst du machen ????

der missbrauch fremder session-ids ist illegal und strafbar ... da ich davon ausgehe das du derartiges vorhast .. gibts von meinerseiteher keinen kommentar mehr .. du solltest auch keinerlei änderungen diesbezüglich am code vornehmen da es sonst möglich ist das sich zb niemand mehr in deinem board einloggen kann .. die session-ids gehören zu den bestgeschütztesten daten .. zu denen du ( in md5 - codierter form ) nur zugriff über die datenbank bekommst
die user-ip kannst du dem acp entnehmen .. wo sie angezeigt wird ...
sofern keine staitschen ips benutzt werden ändert diese sich allerdings .. ist für dich also nutzlos ..
ein missbrauch von IPs wird übrigends auch in östereich strafrechtlich verfolgt

Verfasst: 09.01.2005 14:31
von Lumio
LOL! Ich wollte nur auf meiner Page einen Login machen. Nur wollte ich nicht den fertigen nehmen sondern mir eine selber basteln. Da ich aber nicht weiß wie, frag ich hier nach

Wie du unten aus meiner sig entnehmen kannst, bin ich admin einer wachsenden page. immerhin haben wir in netta 1-2 Wochen 20 User zusammen gehabt.

Verfasst: 09.01.2005 14:33
von marino
ahso .. na dann suchmal nach "loggin einbinden" oder nach "loggin auf der eignen seite"

Verfasst: 09.01.2005 14:35
von Lumio
Im Forum? Okay

Verfasst: 09.01.2005 15:01
von Lumio
Okay! Passt! Habs. Nur wollt ich noch frage, wie man dann sich ausloggt.

Achja noch was! Wenn ich das versteckte Objekt ändere, beispielsweise auf http://www.pc-archiv.com, dann kommt immer der Fehler 404

Verfasst: 09.01.2005 15:25
von Lumio
Wenn ich das ganze mit einem anderem Webspace ausprobiere, kommt das hier zusammen:

http://www.pc-archiv.com/forum/http://w ... 542a7b9b9c

Diesen Link gibts aber net. http://www.pc-archiv.com?sid=987d73e2a1 ... 542a7b9b9c wäre richtig. Wie kann ich denn machen, das nur das kommt?

Verfasst: 09.01.2005 17:41
von Lumio
Soda! Habs geschafft, einen Login selber zu machen (MySQL!!!):

Code: Alles auswählen

include("config.php"); //Zu den Zugangsdaten der Datenbank
if(!$_COOKIE['%cookiename%_sid']){ /*%cookiename% bitte gegen den passenden prefix austauschen */
	if($_POST['username']){
		$client_ip = ( !empty($HTTP_SERVER_VARS['REMOTE_ADDR']) ) ? $HTTP_SERVER_VARS['REMOTE_ADDR'] : ( ( !empty($HTTP_ENV_VARS['REMOTE_ADDR']) ) ? $HTTP_ENV_VARS['REMOTE_ADDR'] : $REMOTE_ADDR );
		function encode_ip($dotquad_ip)
		{
			$ip_sep = explode('.', $dotquad_ip);
			return sprintf('%02x%02x%02x%02x', $ip_sep[0], $ip_sep[1], $ip_sep[2], $ip_sep[3]);
		}
		$user_ip = encode_ip($client_ip);
		
		$session_id = md5(uniqid($user_ip));
		
		$res = mysql_query("SELECT * FROM `phpbb_users` WHERE `username` LIKE '".$_POST['username']."' LIMIT 1;");
		echo(mysql_error());
		if(mysql_num_rows($res) > 0){
			if(md5($_POST['password']) == mysql_result($res, 0, "user_password")){
				$sql = "UPDATE " . SESSIONS_TABLE . "
					SET session_user_id = $user_id, session_start = ".time().", session_time = ".time().", session_page = 0, session_logged_in = ".$_POST['autologin']."
					WHERE session_id = '".$session_id."' 
						AND session_ip = '".$user_ip."'";
				if(!$db->mysql_query($sql)){
					$sql = "INSERT INTO `phpbb_sessions`
						(session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in)
						VALUES ('$session_id', $user_id, ".time().", ".time().", '$user_ip', 0, ".$_POST['autologin'].")";
	
					mysql_query($sql);
				}

				
				setcookie("pca_sid", $session_id);
				header("Location: %wohin%");
/*Statt %wohin% bitte die Umleiten angeben, also http://www.ichunddu.de */
				exit;
			}
		}
	}
}
Form sieht so aus:

Code: Alles auswählen

<form name="form1" method="post" action="">
  Name: 
  <input type="text" name="username">
  <br>
  Passwort: 
  <input type="password" name="textfield">
  <br>
  Autologin: 
  <input type="checkbox" name="autologin" value="1">
  <br>
  <input name="login" type="submit" id="login" value="Login">
</form>