php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 23-12-2009, 09:56
col1n
 Registrierter Benutzer
Links : Onlinestatus : col1n ist offline
Registriert seit: Dec 2009
Beiträge: 4
col1n befindet sich auf einem aufstrebenden Ast
Standard Login / Session / Sicherheit

Hallo Zusammen
Nach langem suchen bin ich auf dieses Forum gestossen und hoffe ihr könnt mir ein wenig weiterhelfen. Ich arbeite noch nicht so lange mit PHP darum fehlt mir evtl. noch das einte oder das andere im verständnis.

Mein Projekt:

Ich plane ein Login System das sicher ist. Ich möchte das jeder User sich nur 1 mal einloggen kann und das auch der ganze Ablauf sicher ist so das man nicht einfach seien Session ID faken kann.

Gedanken die ich mir gemacht habe:
Login seite:
Nach der eingabe von Username und Password wird das Password in md5 verschlüsselt und danach wird in der MySQL Datenbank abgefragt ob diese beiden datensätze existieren.

Wenn dies zutrifft wird in der Datenbank in der Usertabelle einen wert von 0 auf 1 gesetz das soviel bedeutet das der User sich Angemeldet hat.

Danach wird er auf die hauptseite weitergeletiet.
Und da hab ich schon das erste Problem. Ich habe schon oft gelesen dass man nicht den Username und das Password in die Session_ID speichern soll. Danach hab ich mir überlegt ich nimm einfach die USER_ID die ich generiere wenn sich der User Registriert aber die wäre ja nicht wirklich schwer zum erraten wenn man die faken will. (ausserdem wird ein späterer userprofil auruf mit : www. example.com /user.php?=1 etc möglich sein (1 = user_id 1)

Würdet ihr mir Tipps geben was ich in die Session_ID schreiben soll? oder sonst noch Sicherheits vorschläge? Ich lese auf allen Boards verschiedens und dachte somit ich stell die Frage mal auf mein Projekt.

Gruss Col1n

Geändert von col1n (23-12-2009 um 10:04 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 23-12-2009, 11:14
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

In die Session-ID sollst du gar nichts schreiben. Die erzeugt PHP beim Aufruf von session_start() ganz allein.
Mit Zitat antworten
  #3 (permalink)  
Alt 23-12-2009, 11:14
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Zitat:
dass man nicht den Username und das Password in die Session_ID speichern soll.
Das geht ja auch gar nicht!
Eine ID ist eine ID und kein Speicherort.

Grundsätzlich reicht es, wenn du die UserID in Session speicherst. Den Rest kann und sollte man von Platte nachladen.

Ein "eingeloggt" Flag in der DB zu Setzen ist auch bedenklich. Viele loggen sich beim verlassen der Seite nicht aus. Ein "lastActivity" Zeitstempel ist da meist sinnvoller.

Warum willst du Doppellogins ausschließen?
Betreibst du ein Geldinstitut?
__________________
Wir werden alle sterben
Mit Zitat antworten
  #4 (permalink)  
Alt 23-12-2009, 11:45
col1n
 Registrierter Benutzer
Links : Onlinestatus : col1n ist offline
Registriert seit: Dec 2009
Beiträge: 4
col1n befindet sich auf einem aufstrebenden Ast
Standard

Erstmals Danke für eure beiden Antworten

Alles klar, und was wird dann in die Session_ID geschrieben? eine zufallzahl? ist die Sicher? kann ich die überprüfung nur durch diese Variable machen?

Das mit dem Doppellogin wollte ich einfach so das man nicht mit mehreren IP's auf dem Server ist. Muss ich mir Nochmals überdenken.

Nachdem ich das Passwort überprüft habe, was soll ich den in die Session schrieben? damit es Sicher ist? Wie gesagt die USER_ID vom User halte ich nicht für Sinnvoll weil die nicht schwer zum erraten ist.

Was ich vorhin noch gelesen hab das man den Session ordner umbenennen soll oder nicht auf den c:..../temp legen soll?


(Das ganze grenzt an ein Schulprojekt das nicht für alle zugänglich ist, daher das Login)
Mit Zitat antworten
  #5 (permalink)  
Alt 23-12-2009, 11:49
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Das mit der SessionID überlass dem PHP!

Was soll an der UserID in Session bedenklich sein?
Selbst wenn die jemand errät, was hätte er davon?
__________________
Wir werden alle sterben
Mit Zitat antworten
  #6 (permalink)  
Alt 23-12-2009, 11:54
col1n
 Registrierter Benutzer
Links : Onlinestatus : col1n ist offline
Registriert seit: Dec 2009
Beiträge: 4
col1n befindet sich auf einem aufstrebenden Ast
Standard

Verstehe ich da etwas falsch evtl?

Wenn ich die User_ID in die Session reisnchreibe... und die User_id 's sind bekannt.

sagen wir 1-10

ist es ihm dann nicht möglich seine session von seinem PC zu faken und so sich mti dem user 1 anmelden?
Mit Zitat antworten
  #7 (permalink)  
Alt 23-12-2009, 12:03
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Wie sollte das möglich sein?
Mir ist kein Weg bekannt.
__________________
Wir werden alle sterben
Mit Zitat antworten
  #8 (permalink)  
Alt 23-12-2009, 12:15
col1n
 Registrierter Benutzer
Links : Onlinestatus : col1n ist offline
Registriert seit: Dec 2009
Beiträge: 4
col1n befindet sich auf einem aufstrebenden Ast
Standard

Ich frag ja nur, ich möchte das dass ganze Sicher ist...
Mit Zitat antworten
  #9 (permalink)  
Alt 23-12-2009, 12:46
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Du scheinst nicht verstanden zu haben, wie Sessions funktionieren.
Du rufst session_start() auf. PHP prüft daraufhin, ob ein Session-Cookie vom Browser an den Server übertragen wurde. Falls nicht, wird eine Zufallszahl erzeugt, als Session-Cookie an den Browser geschickt und auf dem Server wird eine Datei mit der ID als Namen gespeichert. Alles was dann in $_SESSION abgelegt wird, schreibt PHP in diese Datei. Legst du z.B. die User-ID in $_SESSION ab, verlässt dieser Wert niemals den Server. Beim nächsten Request findet wieder ein session_start() statt. Nun ist ein Session-Cookie vorhanden und PHP lädt die Daten aus dem Session-File in $_SESSION.

Wenn nun ein User seinen Session-Cookie manipuliert, kann er das nur auf eine einzige Weise machen: Er verändert die Session-ID. Denn mehr steht in dem Cookie nicht drin und wird von PHP auch nicht ausgewertet. Um eine andere Session zu übernehmen, muss der User deren ID erraten. Das ist aufgrund der Art wie Session-IDs erzeugt werden ein ziemlich aussichtsloses Unterfangen. Eher hat man einen 6er im Lotto, als eine gültige Session-ID zu erraten.

Viele kommen auf die Idee, die IP in der Session zu speichern und wenn die nicht mehr passt, davon auszugehen, dass der User die Session-ID manipuliert hat. Das ist aber Quatsch, denn der User hat wahrscheinlich nur eine Zwangstrennung vom Provider erfahren (reconnect, neue IP). Jedenfalls wahrscheinlicher als Erfolg beim Erraten einer Session-ID.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Login Sicherheit SCHiLLER PHP Developer Forum 14 24-11-2008 14:53
Sicherheit beim Login enforcer PHP Developer Forum 11 03-04-2007 15:31
Login-Script Sicherheit tcpmux PHP Developer Forum 12 07-08-2006 16:56
Sessíon sicherheit timepoint5 IT-Security 4 23-02-2004 09:23
CMS Login Sicherheit yoshi PHP Developer Forum 4 05-08-2003 14:22

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:17 Uhr.