Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Fehler im Login Script (Wer klaut mir meine Session-Daten?)

  1. #1
    Meister(in)
    Registriert seit
    08.07.2006
    Beiträge
    288
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Fehler im Login Script (Wer klaut mir meine Session-Daten?)

    Hiho mitnand,

    ich habe folgendes Login script geschrieben und nun taucht ein sehr seltsamer Fehler auf.
    Hier erst mal der Code, dann die Erläuterung:

    Das Formular:
    Code:
    <form action="login.php" method="get">
    		<input name="name" type="text" />
    		<input name="pw" type="password" />
    
    		<input value="login" style="background-color&#58; #057391; border&#58; 0px; color&#58; #CCCCCC;" name="" type="submit" />
    </form>
    login.php:
    Code:
    <?php	
    	session_start&#40;&#41;;
    	
    	require&#40; 'config.php' &#41;;
    	require&#40; 'functions/sql/_sql_connect.php' &#41;;
    
    	if&#40; &#40;$_GET&#91;'name'&#93; == '' || !$_GET&#91;'name'&#93;&#41; || &#40;$_GET&#91;'pw'&#93; == '' || !$_GET&#91;'pw'&#93;&#41; &#41; &#123;
    		header&#40;"Location&#58; " . HOST &#41;;
    	&#125;
    	
    	$handle = _sql_connect&#40; SQL_HOST, SQL_USR, SQL_PW, SQL_DB&#41;;
    	
    	if&#40; !$result = mysql_query&#40;"SELECT `name`, `id`, `pw` FROM `" . SQL_PREFIX . "usr` WHERE `name` = '" . $_GET&#91;'name'&#93; . "'", $handle&#41; &#41; &#123;
    		header&#40;"Location&#58; " . HOST &#41;;
    	&#125; elseif&#40; mysql_affected_rows&#40;&#41; == 0 &#41; &#123;
    		header&#40;"Location&#58; " . HOST &#41;;
    	&#125; else &#123;
    		$usr = mysql_fetch_assoc&#40;$result&#41;;
    		if&#40; md5&#40;$_GET&#91;'pw'&#93;&#41; == $usr&#91;'pw'&#93; &#41; &#123;
    			$_SESSION&#91; $usr&#91;'id'&#93; &#93; = TRUE ;
    			header&#40;"Location&#58; " . HOST . "/game_environment/index.php?uid=" . $usr&#91;'id'&#93; . "&page=start" &#41;;
    		&#125; else &#123;
    			header&#40;"Location&#58; " . HOST &#41;;
    		&#125;
    	&#125;
    ?>
    und die Index.php der neuen site in /game-environment/ :
    Code:
    <?php
    	session_start&#40;&#41;;
    	
    	require&#40; '../config.php' &#41;;
    	require&#40; '../functions/_stardate.php' &#41;;
    	require&#40; '../functions/_linkcreate.php' &#41;;
    	
    	if&#40; $_SESSION&#91; $_GET&#91;'uid'&#93; &#93; != TRUE &#41; &#123;
    		header&#40;"Location&#58; " . HOST &#41;;
    	&#125;
    	
    	if&#40; !isset&#40;$_GET&#91;'page'&#93;&#41; || $_GET&#91;'page'&#93; == '' &#41; &#123;
    		header&#40;"Location&#58; " . HOST . "index.php?page=hacking" &#41;;
    	&#125;
    	
    	require&#40; '_header.php' &#41;;
    	require&#40; '_info.php' &#41;;
    	require&#40; '_nav.php' &#41;;
    	
    	require&#40; $_GET&#91;'page'&#93; . '.php' &#41;;
    
    	require&#40; '_footer.php' &#41;;
    ?>
    Nach ein paar Versuchen konnte ich den Fehler darauf eingrnzen, dass die $_SESSION[uid] zwar mit dem korrekten Index auf TRUE gesetzt wird, sobald ich aber auf die neue Index.php weiterleite ist dieser Wert "weg" und man wird wieder auf die alte Index.php weitergeleitet.

    Ich habe auch schon versucht die 'uid' per $_REQUEST[] statt $_GET[] aufzurufen aber der Fehler bleibt der selbe.
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    Win·dows
    Noun.
    A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition.

  2. #2
    phpfan
    Gast

    Standard

    1. Ein Formular mit Passworteingabe per Get zu versenden, ist eine Katastrophe
    2. Wieso hängst du überhaupt etwas an die URL?

    Du machst da Sicherheitslöcher ohne Ende auf.

  3. #3
    Meister(in)
    Themenstarter

    Registriert seit
    08.07.2006
    Beiträge
    288
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Zitat Zitat von phpfan
    1. Ein Formular mit Passworteingabe per Get zu versenden, ist eine Katastrophe
    Oh

    Wie macht man es denn richtig (sicherer) ? Per POST ?
    Win·dows
    Noun.
    A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition.

  4. #4
    Kaiserliche Hoheit Avatar von No0ob
    Registriert seit
    02.01.2006
    Ort
    Nähe Frankfurt
    Beiträge
    1.500
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Natürlich

  5. #5
    Meister(in)
    Themenstarter

    Registriert seit
    08.07.2006
    Beiträge
    288
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Die Daten werden nun per Post übertragen.

    Aber sobald ich auf der neuen Index nach der Session überprüfe:
    Code:
    if&#40; $_SESSION&#91; $_GET&#91;'uid'&#93; &#93; != TRUE &#41; &#123;
          header&#40;"Location&#58; " . HOST &#41;;
       &#125;
    scheint diese nicht mehr den zugewiesenen Wert zu haben und ich werde wieder auf die Ursprungssite geleitet.
    Win·dows
    Noun.
    A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition.

  6. #6
    König(in)
    Registriert seit
    06.06.2007
    Ort
    Bi
    Beiträge
    1.015
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Code:
    $_SESSION&#91; $_GET&#91;'uid'&#93; &#93;

    Jetzt übereg mal genau wenn du keine GET mehr verwendest, warum das nicht mehr geht...
    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.

    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  7. #7
    Meister(in)
    Themenstarter

    Registriert seit
    08.07.2006
    Beiträge
    288
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    An der Stelle verwende ich nach wie vor get ( was ja auch kein Problem ist, denn alleine mit der userid kann man nichts anfangen ).

    Ich Poste aber dennoch mal den aktuellen code:

    Das Formular:
    Code:
    <form action="login.php" method="post">
    		<input name="name" type="text" />
    		<input name="pw" type="password" />
    
    		<input value="login" style="background-color&#58; #057391; border&#58; 0px; color&#58; #CCCCCC;" type="submit" />
    </form>

    login.php:
    Code:
    <?php	
    	session_start&#40;&#41;;
    	
    	require&#40; 'config.php' &#41;;
    	require&#40; 'functions/sql/_sql_connect.php' &#41;;
    
    	if&#40; &#40;$_POST&#91;'name'&#93; == '' || !$_POST&#91;'name'&#93;&#41; || &#40;$_POST&#91;'pw'&#93; == '' || !$_POST&#91;'pw'&#93;&#41; &#41; &#123;
    		header&#40;"Location&#58; " . HOST &#41;;
    	&#125;
    	
    	$handle = _sql_connect&#40; SQL_HOST, SQL_USR, SQL_PW, SQL_DB&#41;;
    	
    	if&#40; !$result = mysql_query&#40;"SELECT `name`, `id`, `pw` FROM `" . SQL_PREFIX . "usr` WHERE `name` = '" . $_POST&#91;'name'&#93; . "'", $handle&#41; &#41; &#123;
    		header&#40;"Location&#58; " . HOST &#41;;
    	&#125; elseif&#40; mysql_affected_rows&#40;&#41; == 0 &#41; &#123;
    		header&#40;"Location&#58; " . HOST &#41;;
    	&#125; else &#123;
    		$usr = mysql_fetch_assoc&#40;$result&#41;;
    		if&#40; md5&#40;$_POST&#91;'pw'&#93;&#41; == $usr&#91;'pw'&#93; &#41; &#123;
    			$_SESSION&#91; $usr&#91;'id'&#93; &#93; = TRUE ;
    			header&#40;"Location&#58; " . HOST . "/game_environment/index.php?uid=" . $usr&#91;'id'&#93; . "&page=start" &#41;;
    		&#125; else &#123;
    			header&#40;"Location&#58; " . HOST &#41;;
    		&#125;
    	&#125;
    ?>
    und die Index.php der neuen site in /game-environment/ :
    Code:
    <?php
    	session_start&#40;&#41;;
    	
    	require&#40; '../config.php' &#41;;
    	require&#40; '../functions/_stardate.php' &#41;;
    	require&#40; '../functions/_linkcreate.php' &#41;;
    	
    	if&#40; $_SESSION&#91; $_GET&#91;'uid'&#93; &#93; != TRUE &#41; &#123;
    		header&#40;"Location&#58; " . HOST &#41;;
    	&#125;
    	
    	if&#40; !isset&#40;$_GET&#91;'page'&#93;&#41; || $_GET&#91;'page'&#93; == '' &#41; &#123;
    		header&#40;"Location&#58; " . HOST . "index.php?page=hacking" &#41;;
    	&#125;
    	
    	require&#40; '_header.php' &#41;;
    	require&#40; '_info.php' &#41;;
    	require&#40; '_nav.php' &#41;;
    	
    	require&#40; $_GET&#91;'page'&#93; . '.php' &#41;;
    
    	require&#40; '_footer.php' &#41;;
    ?>
    Ich habe auch schon überprüft ob die Session überhaupt gesetzt werden kann, aber da trat kein Fehler auf, erst wenn ich auf der neuen Index.php den Wert erneut abfrage.
    Win·dows
    Noun.
    A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition.

  8. #8
    phpfan
    Gast

    Standard

    Du machst dir das Leben unnötig schwer! Einfach
    Code:
    $_SESSION&#91;'logged'&#93; = true;
    und dann
    Code:
    if &#40;isset&#40;$_SESSION&#91;'logged'&#93;&#41;&#41;
    &#123;
       // Ist korrekt eingeloggt
    &#125;
    Wofür willst du unbedingt die User-Id dafür nehmen???

  9. #9
    Meister(in)
    Themenstarter

    Registriert seit
    08.07.2006
    Beiträge
    288
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard


    Grober Denkfehler^^

    Danke für tatkräftige Hilfe, ich probiers gleich mal aus!

    EDIT: Jop es geht
    Win·dows
    Noun.
    A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition.

  10. #10
    Kaiser(in)
    Registriert seit
    09.12.2005
    Alter
    29
    Beiträge
    2.496
    Danke
    1
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    ich mein, sonst speicher halt die user-id in ner session

    bitte siehe Avatar von phpfan & adde ein 'nachdenken'
    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!

Ähnliche Themen

  1. Frage zu einem php Login Script mit session
    Von wizsar im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 8
    Letzter Beitrag: 24.05.2008, 17:03
  2. Login mit session und mit php und mit Textdateien
    Von minder im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 26
    Letzter Beitrag: 21.03.2008, 20:51
  3. PHP Login mit Session ID.
    Von koki12 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 4
    Letzter Beitrag: 29.06.2007, 20:30
  4. Fehler in datenbank daten hinzufüge script (PHP)
    Von pindakaas im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 07.02.2006, 14:08
  5. PHP: Session Login System
    Von Beatz im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 10
    Letzter Beitrag: 06.10.2005, 10:34

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •