Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

LDAP Login - mit Sessions oder mit Cookies?

Mitglied: Lousek

Lousek (Level 2) - Jetzt verbinden

09.02.2008, aktualisiert 18.10.2012, 4819 Aufrufe, 1 Kommentar

Hallo Forum.

Ich bastle gerade an einer Testseite herum.

Jetzt will ich ein Login über LDAP.

Also habe ich angefangen herumzubasteln, herausgekommen ist bis jetzt dies:

01.
function login_complete ($ldap_server) 
02.
03.
      if((isset($_COOKIE['cookie_username']) AND ($_COOKIE['cookie_passwort']))) { 
04.
		if (strpos($_COOKIE['cookie_username'], "@test.local") == false) { 
05.
			$username = $_COOKIE['cookie_username']."@test.local"; 
06.
		} else { 
07.
			$username = $_COOKIE['cookie_username']; 
08.
09.
                $passwort = $_COOKIE['cookie_passwort']; 
10.
                $check_positive = 1; 
11.
      } else { 
12.
               if((isset($_POST['username']) OR ($_POST['passwort']))) { 
13.
                         if(empty($_POST['username']) OR empty($_POST['passwort'])) { 
14.
                                  $array["login_complete"] = "Bitte fuellen Sie alle Felder aus. <br>"; 
15.
                         } else {                              
16.
                                  if((isset($_POST['username']) AND ($_POST['passwort']))) {       
17.
					if (strpos($_POST['username'], "@test.local") == false) { 
18.
					   $username = $_POST['username']."@test.local"; 
19.
20.
					else { 
21.
					   $username = $_POST['username']; 
22.
23.
                                            $passwort = $_POST['passwort']; 
24.
                                            $check_positive = 1; 
25.
                                  }  
26.
27.
                } else { 
28.
                          $array["login_complete"] = "Sie sind nicht eingeloggt: ";       
29.
30.
31.
 
32.
 
33.
       
34.
            if($check_positive==1) { 
35.
      //----------------------------------------Login und Bind----------------------------------------       
36.
      if (!($connect=@ldap_connect($ldap_server))) { 
37.
            $array["login_complete"] = "Could not connect to ldap server<br>"; 
38.
      } else { 
39.
40.
       
41.
      // Needed for W2003 AD.. 
42.
      ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3); 
43.
      ldap_set_option($connect, LDAP_OPT_REFERRALS, 0); 
44.
       
45.
      if (!($bind=@ldap_bind($connect, $username, $passwort))) { 
46.
            $array["login_complete"] = "Login oder Passwort falsch. <br>"; 
47.
      } else { 
48.
            setcookie("cookie_passwort", $passwort, time()+(60)); 
49.
            setcookie("cookie_username", $username, time()+(60)); 
50.
            $array["login_check"] = true; 
51.
      }          
52.
53.
            $array["username"] = $username; 
54.
            $array["passwort"] = $passwort; 
55.
            $array["connect"] = $connect; 
56.
            return $array; 
57.
}      
Und um einen Inhalt zu "sperren" wird das angegeben:

01.
$login = login_complete ($ldap_server); 
02.
 
03.
$login_complete = $login["login_complete"]; 
04.
 
05.
$username = $login["username"]; 
06.
 
07.
$passwort = $login["passwort"]; 
08.
 
09.
$login_check = $login["login_check"]; 
10.
 
11.
$connect = $login["connect"]; 
12.
 
13.
if($login_check==true) { 
14.
 
15.
//Inhalt anzeigen 
16.
 
17.
}
Jetzt ist es hier ja so, das man sich eigentlich jedesmal, wenn man die Seite aktualisiert oder einen Link anklickt (von der eigenen Seite ) sich neu einloggt.
D.h., jedesmal wird ja den Benutzername und Kennwort übertragen --> ganze Seite in HTTPS.

Jetzt sorgt dies doch aber für unnötig Traffic, und unötiger Beanspruchung des LDAP's und Webservers.

Ist es sinnvoller, es über Sessions zu machen?

Und da auch noch eine Frage dazu:

Man sieht häufig auf einer Seite z.B. oben rechts das Anmeldeformular (vorausgesetzt man ist nicht angemolden).

Wie läuft das dort. Wenn die ganze Seite über HTTP ist, und man dort dann seinen Username + PW eingibt, wird der ja auch in Klartext übertragen, oder wie ist das?

Ach ja, als Beispiel kann man ja diese Seite nehmen ;)

Greetz,

Lousek
Mitglied: 29457
19.03.2008, aktualisiert 18.10.2012
hatte mal nen tuto darueber geschrieben
index.php
PHP-Code:

01.
<? 
02.
//login script 
03.
//session beginnen, immer ganze oben vor html Ausgabe! 
04.
session_start(); 
05.
 
06.
//Passwort und Benutzername wird hier Manuell eingestellt 
07.
//diese Daten musst du anpassen 
08.
$user_name = "test"
09.
$user_pass = "123456"
10.
 
11.
//html ausgabe der head daten einer seite 
12.
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"
13.
<html> 
14.
<head> 
15.
<title>Login script</title> 
16.
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"
17.
</head> 
18.
<body><h1>Login Script</h1>'; 
19.
 
20.
 
21.
//login Funktionen 
22.
//post variablen einfach speichern 
23.
$user = $_POST['user']; 
24.
$pw = $_POST['pw']; 
25.
 
26.
//nun kommen die if abfragen die das ganze relativ sicher machen 
27.
if (isset($user, $pw)) 
28.
29.
    if ($user == "" OR $pw == ""
30.
31.
        echo "<b>Bittefülle beide Felder aus!</b>"
32.
33.
        elseif ($user == $user_name AND $pw == $user_pass
34.
35.
            $_SESSION['user'] = $user
36.
            $_SESSION['pw'] = $pw
37.
            echo "<b>Wunderbar! Dein Login war erfolgreich, du kannst nun <a href=\"index2.php?".sid."\">hier</a> in den Geschützen Bereich</b>"
38.
39.
40.
 
41.
//dann kommt das Formular 
42.
if (!isset($user, $pw)) 
43.
44.
    echo '<form name="login" method="post" action="'.$_SERVER['PHP_SELF'].'"
45.
      User Name: <input type="text" name="user"> User Passwort:  <input type="password" name="pw"
46.
      <input type="submit" name="Submit" value="einloggen"
47.
    </form>'; 
48.
49.
     
50.
 
51.
 
52.
echo '</body> 
53.
</html>'; 
54.
 
index2.php

PHP-Code:
01.
 
02.
//der Geschütze Bereich des Login scripts 
03.
//session beginnen, immer ganze oben vor html Ausgabe! 
04.
session_start(); 
05.
 
06.
//html ausgabe der head daten einer seite 
07.
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"
08.
<html> 
09.
<head> 
10.
<title>Login script</title> 
11.
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"
12.
</head> 
13.
<body><h1>Login Script</h1>'; 
14.
 
15.
//die if abfragen ob der user eingeloggt oder ausgeloggt ist 
16.
if (!isset($_SESSION['user'], $_SESSION['pw'])) 
17.
18.
    echo '<b>Du musst dich erst <a href="index.php">hier</a> einloggen um in den Geschützen Bereich zu kommen!</b>'
19.
20.
     
21.
if (isset($_SESSION['user'], $_SESSION['pw'])) 
22.
23.
    echo "<h1>Geschützer Bereich!</h1>"
24.
25.
     
26.
echo '</body> 
27.
</html>'; 
28.
?>
Die session id wird in einem Cookie gespeichert. Fuer die die aber keine erlauben ist es wichtig bei jedem link das sid dran zu hängen

viel spaß damit. Wink



https://www.administrator.de/wissen/php-einfaches-login-script-mit-sessi ...


Rabbit
Bitte warten ..
Ähnliche Inhalte
PHP
PHP LDAP Login
gelöst Frage von schneerunzelPHP11 Kommentare

Hallo Zusammen, ich brauche eine Website auf der man sich mit seinen LDAP Account anmelden kann und dann eine ...

Linux Userverwaltung
Proxmox mit LDAP Login und openLDAP
Frage von spcvltLinux Userverwaltung

Hallo, ich habe einen openLDAP Server auf einem vServer installiert und würde gerne die LDAP Login funktion von Proxmox ...

PHP
PHP LDAP Login Gruppen Abfrage
gelöst Frage von schneerunzelPHP7 Kommentare

Hallo Zusammen ich habe dieses PHP Script: Dieses Script stammt von einem anderen User aus diesem Forum Unschwer zu ...

Batch & Shell
Otrs Agent und Customer Login per LDAP
Frage von MichaelW84Batch & Shell2 Kommentare

Hallo zusammen, ich habe meinem OTRS eine LDAP Authentifizierung für Agents und Customer hinzugefügt und diese funktioniert auch grundsätzlich ...

Neue Wissensbeiträge
Microsoft

Neuigkeiten zu Server und Office 365 was läuft mit was und was nicht

Tipp von AlFalcone vor 1 TagMicrosoft4 Kommentare

Da diese Infos scheinbar unerwünscht sind, habe ich diese wider gelöscht.

Speicherkarten

Neuer Speicherkartentyp - zunächst nur für Huawei-Smartphones (künftig auch für Notebooks u. Tablets?)

Tipp von VGem-e vor 1 TagSpeicherkarten1 Kommentar

Servus, als ob das "Chaos" i.S. Speicherkarten noch nicht groß genug wäre?! Evtl. kommt dieser neue Kartentyp bald auch ...

Sicherheit

Diverse D-Link-Router durch drei Schwachstellen kompromittierbar

Information von kgborn vor 1 TagSicherheit

Hat jemand D-Link-Router in Verwendung? Einige Modelle sind sicherheitstechnisch offen wie ein Scheunentor. Äußerst unschöne Sache, aber nichts neues ...

Hardware

100.000 Mikrotik-Router ungefragt von Hacker abgesichert

Information von 7Gizmo7 vor 2 TagenHardware2 Kommentare

Hallo zusammen, da hier ja öfters mal von Mikrotik gesprochen wird. Trotz Updates klafft eine Sicherheitslücke in Hundertausenden Mikrotik-Routern. ...

Heiß diskutierte Inhalte
Sicherheitsgrundlagen
EuGH-Urteil - Internetanschluss für die ganze Familie - Filesharer haften trotzdem
Frage von StefanKittelSicherheitsgrundlagen40 Kommentare

Hallo, In diesem Artikel geht es darum, dass Jemand aus der Familie ein Hörbuch illegal hochgeladen hat. Der Vater ...

Off Topic
SysAdmin im öffentlichen Dienst - jemand Erfahrungen?
Frage von JohnDorianOff Topic20 Kommentare

Hallo zusammen, hat jemand Erfahrung wie es so ist als SysAdmin im öffentlichen Dienst (Landkreis) im Südwesten der Republik ...

TK-Netze & Geräte
Low budget TK-Anlage für KMU
Frage von HeinklugTK-Netze & Geräte16 Kommentare

Hallo Admins, ich bin auf der Suche nach eine kostengünstigen Telefonanlage für mein kleines Büro mit 4-5 Mitarbeitern. Dabei ...

DSL, VDSL
PPPOE Einwahl über Sophos UTM und FritzBox per PPPOE Passthrough
gelöst Frage von Leo-leDSL, VDSL16 Kommentare

Hallo zusammen, vielleicht habt Ihr noch eine Idee?? Ich besitze einen 1u1 Anschluss und möchte meine UTM ASG 110 ...