Hinter einem Router z.B. haben (nach außen hin) alle Rechner die dahinterhängen die selbe ip. Also könnten die sich untereinander fröhlich die Sessions stehlen...
Ankündigung
Einklappen
Keine Ankündigung bisher.
PHPSESSID über URL ist ein sch**** Sicherheitsproblem!
Einklappen
Neue Werbung 2019
Einklappen
X
-
Zitat von jivesIch versteh irgendwie das Problem nicht. Man macht ja nicht aus oder mit der IP die SESSID, sondern fragt nur zusätzlich die IP ab.
Zitat von jivesSomit ist das Problem mit dem weitergeben von Links keins mehr, weil ja nicht gleichzeitig 2 Benutzer am PC arbeiten können (?).
Mal ganz abgesehen davon, dass eine öffentliche IP zwar eindeutig sein muss, aber keinesfalls den Rechner repräsentieren muss, an dem der Nutzer sitzt, sondern gerne auch mal einen Proxy oder Router, hinter dem sich entsprechend viele Nutzer verstecken können.
Zitat von jivesSollte die IP tatsächlich während einer Sitzung wecheseln, muss sich der Benutzer neu einloggen, was ja kein Problem darstellen sollte (es sei denn die IP wecheselt alle 2min ).mod = master of disaster
Kommentar
-
Zitat von WaqZitat von jivesIch versteh irgendwie das Problem nicht. Man macht ja nicht aus oder mit der IP die SESSID, sondern fragt nur zusätzlich die IP ab.
Sind solche Aussagen wirklich notwendig?
Zitat von WaqZitat von jivesSomit ist das Problem mit dem weitergeben von Links keins mehr, weil ja nicht gleichzeitig 2 Benutzer am PC arbeiten können (?).
Zitat von WaqMal ganz abgesehen davon, dass eine öffentliche IP zwar eindeutig sein muss, aber keinesfalls den Rechner repräsentieren muss, an dem der Nutzer sitzt, sondern gerne auch mal einen Proxy oder Router, hinter dem sich entsprechend viele Nutzer verstecken können.
Für die Benutzer hinter dem Proxy oder am selben Computer hat diese Technik natürlich keinen Nutzen, aber mir würde nichts einfallen, um die eineutig identifizieren zu können (mit SSL vielleicht).
Zitat von WaqZitat von jivesSollte die IP tatsächlich während einer Sitzung wecheseln, muss sich der Benutzer neu einloggen, was ja kein Problem darstellen sollte (es sei denn die IP wecheselt alle 2min ).
Was ich sagen will:
Ich sehe keine Nachteile darin, die IP zusätzlich zur SESSID abzufragen, es bietet immerhin mehr sicherheit, wenn nicht mehrere Benutzer am selben Rechner/hinter dem selben Proxy arbeiten.
Einzig und allein einen Nachteil gibt es: Sollte die IP oft wechseln, kann man dem Benutzer nicht zumuten, sich jedes Mal neu einloggen zu müssen.
Kommentar
-
Du hast recht, es ist ein kleines bißchen sicherer aber natürlich längst nicht ausreichend. Solange man jedoch nicht mit hochsensiblen Daten wie Bankverbindungsdaten etc. hantiert, empfinde ich diesen Schutz als ausreichend. Wirklich hinnehmbare Sicherheit bietet eben wie schon erwähnt nur SSL.
Kommentar
-
Ich muss zugeben, dass ich hier nicht sattelfest bin, deshalb auch das Fragezeichen
http://www.dclp-faq.de/q/q-sessions-methode.html
http://www.dclp-faq.de/q/q-sessions-ip.html
Hier ein Beispiel, falls Cookies verweigert
Am besten mit Firefox~Mozilla ansehen, vorher Cookies sperren - bzw. nur nach Anfrage -- Einstellen
http://www.novo-terra.de/angebote.php
Kommentar
-
Zitat von ulleIch muss zugeben, dass ich hier nicht sattelfest bin, deshalb auch das Fragezeichen
http://www.dclp-faq.de/q/q-sessions-methode.html
http://www.dclp-faq.de/q/q-sessions-ip.html
Es geht mir hier nicht darum, ob man die SESSID im Cookie speichern sollte oder nicht, sondern darum, einen Weg zu finden, Daten möglichst gut abzusichern (ohne SSL oä.) wenn dies nicht möglich ist.
Ich glaub wir sind uns da eh alle einig. Ich meinte nur, dass ich nur einen Nachteil erkennen kann, wenn man die SESSID an eine IP bindet, nämlich wenn sich die IP häufig ändert (abgesehen vom kleinen Mehraufwand ) und deshalb die oft gemachte Aussage
"SESSID & IP ist nicht sinnvoll oder gar böse"
nicht verstehe
Zitat von ulleHier ein Beispiel, falls Cookies verweigert
Am besten mit Firefox~Mozilla ansehen, vorher Cookies sperren - bzw. nur nach Anfrage -- Einstellen
http://www.novo-terra.de/angebote.php
Kommentar
-
Ich meinte nicht sattelfest im Bezug auf Multiuser-Systeme
SESSID & IP ist nicht sinnvoll oder gar böse
Einfach auf Cookies beschränken, Fehlerhinweis einbauen - FERTISCH
Alles andere ist kontraproduktiv, oder hast Du schon mal einen Session-Cookie manipuliert, außer der Sessionid sollte da sowieso nichts stehen. Und wer den COOKIE manipuliert, der hat auch andere Energie Dich zu ärgern.
Das mit der IP - einfach vergessen
Alles weitere an Sicherheit geht nur über SSL
Session-Cookie ist die 'DAU'-bremse - SSL ist die Sicherheit
Kommentar
-
Ist das jetzt ein gutes oder ein schlechtes Beispiel
Die User, die Cookies zulassen merken nichts davon, die Cookies ablehnen bekommen eine Notice, beurteilen mußt Du nun selbst.
Kommentar
-
Gerade eben, beim Schreiben meines Beitrags, hab ich endlich kapiert was du eigentlich meinst (hoff ich zumindest ).
Sollte ein DAU hinter einem Proxy sitzen und seine SESSID an jemanden hinter dem gleichen Proxy weitergeben, kommt derjenige an sensible Daten.
Sicherheitslücke
Das Problem besteht bei cookies only nicht, eine Lücke weniger.
Und sollte die SESSID sowieso per cookie weitergegeben werden bringt ein IP-Logging auch kein Plus an Sicherheit.
Kommentar
-
Und sollte die SESSID sowieso per cookie weitergegeben werden bringt ein IP-Logging auch kein Plus an Sicherheit.
Andersrum wird ein Schuh daraus, Du hast ein Shopsystem, die IP mitgelesen, es ist ein AOL-User, dieser bekommt pro Session permanent eine andere IP (das ist bei AOL so)
Fazit, der Warenkorb ist permanent gelöscht
Auf die IP-Adresse kannst Du Dich nicht verlassen.
Die Jungs von PHP haben sich ja schon was dabei gedacht eine SESSIONID einzuführen, ist übrigens bei ASP auch so.
Damit ist auch die Session geschlossen falls der Browser beendet wird !!!!
Kommentar
-
-
Versuch einer Lösung
Hallo Jungs,
ich bin neu in eurem Forum, hier meine Vorgehensweise.
Ich habe immer eine Einstiegsseite (index.php) diese generiert alle SESSION-Variable die ich benötige. Soweit glaube ich alles ein alter Hut.
Ich setze weiter eine bestimmte Variable z.B $ID über microtime()
diese übergebe ich wie die Session_id in der URL.
Jetzt kann ich bei gleicher Session mehrere Nutzer (Router-problem) unterscheiden, denn ich definiere alle Variablen je Nutzer folgendermaßen
<?
$ID = $_GET["ID"]
$_SESSION["Beispiel_$ID"]
?>
und habe somit eine spezielle Variable für jeden Nutzer. trotz scheinbar gleicher Variablenbezeichnung
Jetzt das Problem Sicherheit und Session-Klau
Dies versuche ich zu verhindern, indem ich zusätzlich bei jedem Seitenaufruf ein Variable definiere:
$SICO = microtime() oder Zufallsgenerator
Diese einmal in einer Sessionvariable speichere
$_SESSION["SICO_$ID"] = $SICO
und einmal an die URL anhänge ...&Sico=$SICO...
die aufgerufene Seite vergleicht jetzt beide Variablen
die Getvariable und die Sessionvariable
if($_GET["SICO"] != $_SESSION["SICO_$ID"]) {
//-- Abweisen und springen auf Indexseite
} else {
//-- alles OK,
}
Jetzt muß natürlich die $SICO - neu initialisiert werden.
Damit ändert sich jedesmal diese Seite. Sollte jetzt einer Versuchen die Seite gleichzeitig zu öffnen, so kommt es zu einer Differenz und beide fliegen Raus.
Wenn man jetzt noch eine Seite einbaut, welche ein Logout generiert kann man alle Session-variablen mit $ID löschen und somit die Nutzung der SESSION-ID für eventuell noch offene SESSIONs unterbinden. Hierbei ist man aber auf die Mithilfe der User angewiesen.
Der Vergleich der IP ist soweit OK
Dies kann alles in einer kleinen Log-datei geschehen.
Vielen Dank für das bißchen Aufmerksamkeit.
Kommentar
-
Re: Versuch einer Lösung
Zitat von Tiefehier meine Vorgehensweise
Wenn ich das Browserfenster schließe und die Adresse weitergebe, dann habe ich die Lückge genutzt.
Denn dann stimmen GET und Session-Variable immernoch überein!Aufstrebend, kompetent und [b]werbefrei[/b].
:arrow: [b][url=http://www.developers-guide.net]www.developers-guide.net[/url][/b]
Kommentar
-
In meinen Postnukezeiten habe ich dieses hier gelernt.
Code:php_flag session.use_trans_sid off
Die SID erscheint so nicht mehr in der Adresszeile, wird aber trotzdem mit weitergeführt. Somit hat man mindest erstmal unterbunden, dass man URL's mit angehängter SID weitergibt.
Allerdings ist die Einstellung abhängig von der Serverkonfiguration.
Kommentar
-
@tutti:
einfach mit
http://php.net/ini_set
konfigurieren.
wenn die SID nicht per URL weitergegeben wird, dann müssen kekse verwendet werden, wobei man dann wieder auf ein verfügbarkeitsproblem stößt.
ist also alles nicht so das wahre
@supertramp:
du hast aber ganz schön in der vergangenheit gekramt[b][url=http://www.benjamin-klaile.de]privater Blog[/url][/b]
Kommentar
Kommentar