Wie sicher sind SESSIONS

Hallo, wieder mal ne Frage,
was ist sicherer
SESSIONS oder Cookies, oder beides, weil mir gehts darum
wenn ich jetzt ne Session habe, und die ergibt dann auch die Rechte etc. kann es da nicht sein das wer anderer die gleiche Session nimmt und mit der dann dort mit meinen Namen alle Rechte hat?

Sessions sind auf jeden Fall besser als „einfache“ Cookies. Sessions benutzen auch Cookies, von daher. :wink:

Wenn du ein Cookie mit Username und Passwort setzt, muss der User bei jedem Seitenaufruf authentifiziert werden. Wenn das Cookie gestohlen wird, hätte der Angreifer Username und Passwort…

Bei einer Session kannst du dir zuverlässig merken, ob ein User eingeloggt ist und musst ihn nicht jedesmal authentifizieren. Wenn es jemandem gelingt, an die Session-ID zu kommen, könnte er evtl. die Rechte des Users übernehmen (ich weiß nicht, ob ext/session da automatisch sicher ist).
Ein Ansatz wäre, den User-Agent oder die ersten x Stellen der IP in der Session zu speichern und dann zu überprüfen… es gibt aber bestimmt noch bessere Methoden.

Ok, verstehe, können die anderen bei ihrem internetbrowser sehen, was das für sessions sind?

o.0? Verstehe ich nicht. Was für andere?

Sessions werden normalerweise über Cookies weitergegeben, d.h. die Session-ID ist nicht in der Adressleiste sichtbar, falls du das meinst.

Das problem mit der SID…
Ich habs gelöst (hoffe ich zumindest) indem ich die IPs logge (Das brauche ich sowiso für die IP-Sperre, da speichere ich einfach den Benutzernamen mit)
Eine andere Möglichkeit wäre, das Passwort verschlüsselt in einem Cookie abzulegen
at.php.net/crypt als Hash verwendest du ‘$1$’.substr($_SERVER[“REMOTE_ADDR”],1,8).’$’

Damit ist es sicher :wink:

Also ich denke Sessions sind das Sicherste.
Normalerweise steht in nem Cookie die Session ID.
Die Datei existiert auf dem Server und in der stehen deine Variablen drin.
User ID whatever.
Und mit der Session kannst dann durch die User ID Rechte überprüfen etc.
und benutzername und PW in ein Cookie zu packen ist eh viel zu riskant.
Eigentlich benutzt jede Forensoftware Sessions. Auch die meisten CMS.

Nur wenn jemand mit JS die Session-ID klaut, dann ist er automatisch eingeloggt…
Deswegen das Passwort, verschlüsselt mit MD5, der Hash ist die IP…

Na, ich machs so, ist das sicher oder eher unsicher, könnte man nicht einfach ne lange Zahlenkette nehmen oder so?

[code]session_start();

if (isset($_POST[‘userid’]) && isset($_POST[‘password’])) {
// Falls der Benutzer das Anmeldeformular abgesendet hat:
$userid = $_POST[‘userid’];
$password = $_POST[‘password’];

$db_conn = new mysqli('$host', '$user', '$pass', '$database');

if (mysqli_connect_errno()) {
    echo 'Verbindungsaubau zur Datenbank fehlgeschlagen: ' . mysqli_connect_error();
    exit();
}

$query = 'select * from mybb_users '
 . "where username='$userid' "
 . " and password=sha('$password')";
 


$result = $db_conn->query($query);
if ($result->num_rows > 0) {
    // Falls die Benutzereingaben in der Datenbank stehen,
    // wird die ID des Benutzers in der Session registriert.
    $_SESSION['valid_user'] = $userid;
}
$db_conn->close();

}[/code]

Ja ok IP kann man noch loggen etc^^ Aber wir reden ja erstmal übers grobe :smiley:

Naja, aber könnte mir jemand das sichererr Machn?

Mein Post war auf michi bezogen^^ schau auf die zeit :wink: wir haben gleichzeitig gepostet.
Ich mach es auch so. Man könnte noch $_SESSION[“ip”] machen und da die IP reinpacken.
Und jedesmal prüfen ob die IP mit $_SESSION[“ip”] übereinstimmt.
irgendwie so in der art

‘Sicherheit’ hat da ja ganz verschiedene Aspekte, wobei sich
bei jeder Anwendung die Frage stellt, was jetzt im Einzelnen
jeweils gemeint ist.

  1. Sicher, daß es Projekt im internet funktioniert
    (cookies kann der Nutzer ablehnen, pauschal oder auch weil
    er irgendwann, bevor er sich noch zu irgendwas anmelden
    wollte bereits mit überflüssigen cookies bombadiert wurde).

  2. Absichern des Projektes gegen Angriffe von außen

  3. Sicherheit vertraulicher Daten auf dem server, besonders
    auch vertraulicher Nutzereingaben und personenbezogener
    Daten. Wer kann auf solche Daten auf dem server zugreifen?
    Ist der Administrator vertrauenswürdig? Sind Dateirechte richtig
    gesetzt, Schutz der Festplatte gegen Diebstahl?

  4. Sicherheitsaspekt des Nutzers - der will nicht durch cookies
    etwa ausspioniert werden, will vielleicht keine Stabilitäts- oder
    Sicherheitsprobleme per JS bekommen und wird daher für ihn
    als unsicher angesehene Methoden pauschal ablehnen, auch
    wenn diese für den Autor durchaus sinnvoll erscheinen mögen.

Das hier angesprochene Abgreifen von Informationen, entweder
des GET-Parameters für eine Sitzung oder von cookies man doch
meist praktisch mit HTTPS statt HTTP vermieden werden, was
dann ein Problem des Autors ist.
Daß dem Anwender jemand über die Schulter schauen kann oder
auf seinem Rechner Sitzungdaten klauen kann, ist erstmal
Problem des Anwenders und nicht des Autors.