php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.07.2004, 12:05  
Neuer Benutzer
 
Registriert seit: 08.06.2003
Beiträge: 21
Olsen
Standard message-system sicher machen

Hi,
ich möchte ein Message System, wie in einem Forum bauen.
In einer tabelle bewahre ich ALLE Messages von allen Benutzern auf. Mit
dem Feld user_id wird eine Message einem User zugeordnet. Soweit so
gut!
Jetzt ruft ein Benutzer all seine Messages auf (SELECT * FROM MESSAGES
WHERE USER_ID = $variable) und dann werden alle Messages mit einem kurzen titel angezeigt. Klickt man auf den Titel, soll der ganze Text angezeigt werden.
Im prinzip funzt das ja, indem ich die Message per <htmllink>?message_id=123 aufrufe. Problem hierbei ist nur, dass dieser Link manipulierbar ist, ein böser Mensch, die id einfach austauschen kann und somit möglicherweise eine Message zu Gesicht bekommt, die nicht für ihn bestimmt war.
Wie kann ich das besser lösen bzw. sicher machen?
Danke,
Olsen
Olsen ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 30.07.2004, 12:10  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 146
Hakima befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

Du könntest mit hidden-Feldern arbeiten. Besser ist, die Daten mit md5() zu verschlüsseln
schau Dir hierzu mal folgenden Link an:
http://de3.php.net/manual/de/function.md5.php

Gruß,
K.
Hakima ist offline  
Alt 30.07.2004, 12:13  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 2.150
Guradia befindet sich auf einem aufstrebenden Ast
Standard Re: message-system sicher machen

Zitat:
Zitat von Olsen
Im prinzip funzt das ja, indem ich die Message per <htmllink>?message_id=123 aufrufe. Problem hierbei ist nur, dass dieser Link manipulierbar ist, ein böser Mensch, die id einfach austauschen kann und somit möglicherweise eine Message zu Gesicht bekommt, die nicht für ihn bestimmt war.
Hast wohl T-Hack gelesen ^^


Simpel .. du hast ja irgendwo eine Session, mit der du den User identifizierst? .. den nirgendwo her musstest du ja schon wissen, welche Messages gelistet werden sollen.

Bei der Abfrage prüftst du diese ID gleich nochmal mit ...
Guradia ist offline  
Alt 30.07.2004, 12:21  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 146
Hakima befindet sich auf einem aufstrebenden Ast
Standard

o.k., sessions zu verwenden und abzufragen ist sicher die einfachere Methode.

md5() habe ich benutzt, um Anmeldedaten zu verschlüsseln...

T-Hack?
Hakima ist offline  
Alt 30.07.2004, 12:41  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 2.150
Guradia befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Kamalo
T-Hack?
´

http://www.phpfriend.de/ftopic19474.html
Guradia ist offline  
Alt 30.07.2004, 13:55  
Neuer Benutzer
 
Registriert seit: 08.06.2003
Beiträge: 21
Olsen
Standard

an sessions und md5 habe ich auch schon gedacht, wusste aber nicht, wie ich das in diesem fall anwenden soll.
ich meine, ich habe ja theoretisch mehrere nachrichten aufgelistet. welche davon soll ich denn in einer session registrieren? und wie sollte das mit der verschlüsselung laufen?
bitte ein kleines konkretes beispiel.
danke
Olsen ist offline  
Alt 30.07.2004, 13:59  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 2.150
Guradia befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Olsen
an sessions und md5 habe ich auch schon gedacht, wusste aber nicht, wie ich das in diesem fall anwenden soll.
entweder hat Kamalo dich falsch verstanden .. oder ich ^^

md5() bringt dir gar nichts
Sessions bringen dir in bezug auf die Messages und derenSicherheit auch nicht viel ...

Wie ich schon sagte:
-> Beim Anzeigen einer konkreten Message: Gleich nochmal mit prüfen, ob der Benutzer diese Lesen kann. Auf die gleiche art, wie du schon festgelegt hast, welche Messages der Benutzer aufgelistet bekommen.

Diese Info über den Benutzer hat mal üblicherweise in einer Session abgelegt ...
Guradia ist offline  
Alt 30.07.2004, 15:12  
Neuer Benutzer
 
Registriert seit: 08.06.2003
Beiträge: 21
Olsen
Standard

jo,
ich hatte ein brett vorm kopf. abfrage nach message_id UND user_id brachte das erwünschte ergebnis.
trotzdem danke
Olsen ist offline  
Alt 30.07.2004, 15:34  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 146
Hakima befindet sich auf einem aufstrebenden Ast
Standard

wenn ich das richtig verstehe, logt sich doch jeder User mit einem Passwort ein?

Mit md5() wird das eingegebene Passwort in hexadezimal umgewandelt und so auch in die DB-Tabelle eingetragen. Es ist dann zwar im Browser sichtbar, aber unkenntlich.

Ein Beispiel für ein Einloggen mit md5:
Code:
}elseif(!$_POST['usr'] || $_POST['usr'] == "") { // bei fehlender Eingabe
  echo '<p class="btext"align="center">Bitte geben Sie einen Benutzernamen ein !!!</p>'; 
}elseif(!$_POST['password'] || $_POST['password'] == "") { // bei fehlender Eingabe
  echo '<p class="btext" align="center">Bitte geben Sie ein Passwort ein';
  echo '<input type="hidden" name="usr" value="'.$_POST['usr'].'">'; 
  }else{ 
  $password = md5($password); // Verschlüsselung wird gesetzt
  $query = @mysql_query("SELECT user, passwort FROM $admindb WHERE user = '".$_POST['usr']."'") or die ('<p class="high" align="center">Datenbank ist zur Zeit nicht zur erreichen, bitte wenden Sie sich an Ihren Administrator!</p>'); 
  $result = @mysql_fetch_array($query) or die('<p class="high"align="center">Entschuldigung, bitte wenden Sie sich an Ihren Administrator!</p>');
Ausgabe eines Textes bei Falscheingabe:
Code:
if($password != $result['passwort']){ 
    echo '<form action="index.php" method="post">'; 
    echo '<p class="high" align="center">Das Passwort ist falsch!'; 
    echo '<input type="hidden" name="usr" value="'.$_POST['usr'].'">'; 
    echo '<input class="button" type="submit" name="zurueck" value="Zurück"></p>'; 
    echo '</form>'; 
    die; 
  }
Die Abfrage über die User-Variable kann in eine session gepackt werden:
Code:
else
 { 
    $user = $result['user']; 
    session_register('user'); 
	echo '<p class="text" align="center">Sie werden sofort weitergeleitet<meta http-equiv="refresh" content="2; url=messages.php">
</p>';
Bei Weiterleitung auf die Seite messages.php:
Code:
$user = $_SESSION['user'];
echo "Hallo, $user;
Hier kann der User direkt angesprochen werden oder aber der select-Befehl zur Anzeige der Messages abgesetzt werden...
auch unter Verwendung der Variablen $user:
Bspweise:
Code:
SELECT * FROM MESSAGES 
WHERE USER= $user
Dies soll nur ein Beispiel sein zu der Vorgehensweise, die ich mir vorstelle - wenn jemand da ein besseres Beispiel hat - ich hoffe, es ist trotz des langen Codes verständlich
Hakima ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Wie Lizenz System umsetzen? ghost120 PHP-Fortgeschrittene 5 20.07.2009 13:04
system() flush und Safari webbi PHP-Fortgeschrittene 6 07.07.2008 21:30
ComputerVerwaltung / System / Ereignisanzeige dh1sbg PHP-Fortgeschrittene 3 17.11.2006 01:42
system() - Befehle werden einfach ignoriert sad PHP-Fortgeschrittene 9 18.04.2006 18:12
[Erledigt] Exim --- Mailserver empfängt keine Mails Server, Hosting und Workstations 4 23.12.2005 18:28
Plug-In System duderino PHP Tipps 2007 11 14.11.2005 17:58
29.07.05: System Administrator Appreciation Day!! Off-Topic Diskussionen 2 25.07.2005 09:15
Auf welchen System funktioniert ftp_rawlist Schaelle PHP Tipps 2005-2 0 30.06.2005 19:43
Chat System Chat System Beitragsarchiv 3 21.06.2005 17:07
Template System tutorial PHP Tipps 2005 3 09.02.2005 19:49
Welches Template System? zwelch PHP Tipps 2004-2 1 18.11.2004 09:04
[Erledigt] Wie schalte (lösche) ich im System die GHz Zahl ab ? &lt;- Off-Topic Diskussionen 16 31.08.2004 13:55
Probleme mit system() PHP Tipps 2004 2 21.06.2004 13:03

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php message system, php code message system, php messagning sytem, message system php, message system tutorial, messagesystem datenbank, php link sicher machen, php tutorial message system, datenbank tabellen für messagesystem, nof message system, mysql_query sicher machen php, tutorial message system php, message system php tutorial, php message, messages php

Alle Zeitangaben in WEZ +2. Es ist jetzt 03:46 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.