Homepage selbermachen 7.851 Themen, 35.616 Beiträge

Sichere Verbindung mit PHP

Nikon / 1 Antworten / Flachansicht Nickles

Hi Leute,


ich habe folgendes problem:


Ein Benutzer loggt sich mit Benutzernamen und Kennwort ein. Er wird auf eine andere Seite verlinkt. Alle Daten werden per Method=POST übertragen. Wenn aber nun dieser Benutzer sich etwas in HTML auskennt, kann er seine Daten im Quellcode ansehen und per GET auf diese Site übergeben. D.h. Er würe den Login übergehen.


Mir fällt keine sinnvolle Möglichkeit ein, mit der ich erkennen kann, ob sich ein Bnutzer ordnungsgerecht eingeloggt hat oder nicht. Kann mir da jemand weiterhelfen?


thx im Voraus...

Nikon
bei Antwort benachrichtigen
xafford Nikon „Sichere Verbindung mit PHP“
Optionen

Um zu verhindern, daß eine Variable, welche über POST übermittelt werden sollte nutzt man nicht den globalen Variablennamen bei der Überprüfung, register_globals ist eh auf vielen Servern aus Sicherheitsgründen mittlerweile deaktiviert. Um gezielt eine Post-Variable abzufragen, nutzt man das $_POST['VARIABLENNAME'] Array. Wenn Du also bisher so abgefragt hast:

if($username=='xxx' && $passwd=='yyy'){
// weiterer code
}

dann arbeite zukünftig so:

if($_POST['username']=='xxx' && $_POST['passwd']=='yyy'){
// weiterer Code
}

Dadurch können die Variablen $username und $passwd nicht über GET übermittelt werden, da sie andere Variablen repräsentieren. Dies ist allerdings immer noch kein Problem, daß von jemandem mit Ahnung von HTML nicht umgangen werden kann.

Weiterhin gibt es die Möglichkeit abzufragen, ob derjenige von deiner Login-Seite kommt über $_SERVER['HTTP_REFERER'] (unter Apache) und somit könntest Du alle ausfiltern, welche nicht die Daten auf der Loginseite eingeben haben. Dies ist jedoch auch nicht wasserdicht, da zum einen manche Desktiopfirewalls den Referer blocken und sie somit abgewiesen würden, zum anderen kann man auch einen Referer fälschen, wenn man weiß wie.
Eine weitere Möglichkeit wäre Cookies zu setzen, das ist aber auch nicht 100%ig und auch nicht wirklich sinnvoll, höchstens in Verbindung mit Sessions.
Was Dir letztendlich bleibt ist entweder eine nur 99%ige Lösung, Sessions, oder eine eigene Userverwaltung zu schreiben ähnlich der, die im Nickles-Chat Verwendung findet, hier wird nämlich nicht über die Seiten Username und Passwort übermittelt, sondern ein eindeutiger Key, der den User identifiziert, ähnlich wie bei Sessions, allerdings mit angepasster Funktionalität.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen