| Webmaster-Security Fragen zur richtigen Serverkonfiguration oder Absicherung dynamischer Scripte gehören hier hinein. |
Diskussion: Login bei meiner Website im Forum Webmaster-Security, in der Kategorie Security Area; Anzeige Hallo zusammen, ich bin ganz neu hier und hoffe, dass ihr mir helfen könnt... ich habe meine erste eigene ...
![]() |
| | #1 (permalink) |
| Registriert seit: 13.06.07 ![]() Likes: 0 | Anzeige Hallo zusammen, ich bin ganz neu hier und hoffe, dass ihr mir helfen könnt... ich habe meine erste eigene Website mit PHP und CSS gebastelt (oder bin bessergesagt noch dran) und frage mich jetzt, wie sicher sie überhaupt ist... ich habe einen login, der mittels Sessions arbeitet... bei erfolgreichem login wird in der Session hinterlegt, dass die person eingeloggt ist... Wenn ich mich jetzt aber auf dem lokalen Apache server "einlogge" erscheint unten auf der Seite folgender Text: Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0 ich bin aus der ganzen sache nicht besonders schlau geworden, wollte aber mal fragen, ob sich jemand damit auskennt und mir vielleicht sagen kann, ob es leicht wäre auf meiner Seite in meinen Acc. einzusteigen?? ich möchte die sicherheit einigermassen hoch halten, damit sich nicht jeder in die verschiedenen acc. "einhacken" kann, da ich vorhabe dass sich die leute persönliche Mitteilungen schicken können. das hier ist meine Seite: http://laurentweber.la.funpic.de/reisen/index.php über geschmack lässt sich soviso streiten, also nichts über das design ;) Gruss Lilu |
| | |
| | #2 (permalink) |
| Member of Honour ![]() Registriert seit: 07.12.04 ![]() Likes: 256 | http://www.php-fehlermeldungen.de/ar...arning-unknown()-your-script-possibly-relies-on-a-session-side-effect-which-existed,.html Gruss
__________________ Die deutsche Rechtschreibung ist Freeware, daher darf man sie kostenlos nutzen. Allerdings ist sie nicht Open Source, dies bedeutet man darf sie nicht verändern oder in veränderter Form veröffentlichen. |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) |
| Themenstarter Registriert seit: 13.06.07 ![]() Likes: 0 | danke dir für die Antowrt, aber funktioniert irgendwie nicht... ![]() mein "session-code" sieht so aus: session_start(); session_register('eingeloggt'); session_register('User_Vorname'); session_register('User_Name'); $eingeloggt = $_SESSION['eingeloggt']; $User_Name = $_SESSION['User_Name']; $User_Vorname = $_SESSION['User_Vorname']; nachdem ich die session starte, schreibe ich drei variabeln in die Session (eingeloggt, User_Vorname und User_Name) mittels session_register... diese hole ich anschliessend gleich wieder raus und schreibe sie wieder in normale Variabeln... laut der beschreibung die ich unter deinem link finde, sollte ich aber nicht session_register benutzen, sondern nur die globale $_SESSION variabel... aber die ist doch nur um variabeln aus der session zu holen und nicht um sie reinzuschreiben, oder sehe ich das falsch?? |
| | |
| | #4 (permalink) |
| Member of Honour ![]() Registriert seit: 07.12.04 ![]() Likes: 256 | $_SESSION['eingeloggt'] = 'eingeloggt'; diese Syntax sollst du verwenden Gruss
__________________ Die deutsche Rechtschreibung ist Freeware, daher darf man sie kostenlos nutzen. Allerdings ist sie nicht Open Source, dies bedeutet man darf sie nicht verändern oder in veränderter Form veröffentlichen. |
| | |
| | #5 (permalink) |
| Themenstarter Registriert seit: 13.06.07 ![]() Likes: 0 | funktioniert leider nicht... wenn sich jemand einloggt hinterlege ich eine 1 in $eingeloggt, diese wird dann immer wieder geprüft... wenn ich aber die von dir vorgeschlagene syntax nehme, fliege ich immer wieder raus, heisst also, die variabel wird nicht in die Session geschrieben... auch mit: $_SESSION['eingeloggt'] = $eingeloggt; funktioniert es nicht... jedoch mit: session_register('eingeloggt'); komisch... |
| | |
| | #6 (permalink) |
| Moderator ![]() | Die PHP-Dokumentation rät von der Benutzung von session_register() ab und empfiehlt die Nutzung des superglobalen $_SESSION-Arrays. Vielleicht solltest du mal das Skript posten, welches bei dir das Session-Handling übernimmt, denn die Zuweisung direkt in dieses Array funktioniert normalerweise problemlos. |
| | |
| | #7 (permalink) |
| Member of Honour ![]() Registriert seit: 07.12.04 ![]() Likes: 256 | Ist $eingeloggt überhaupt schon mit 1 belegt? Welche Werte hast du in der Session? print_r($_SESSION); Gibt dir diese aus. Gruss
__________________ Die deutsche Rechtschreibung ist Freeware, daher darf man sie kostenlos nutzen. Allerdings ist sie nicht Open Source, dies bedeutet man darf sie nicht verändern oder in veränderter Form veröffentlichen. |
| | |
| | #8 (permalink) |
| mh... PHP-Code: | |
| | |
| | #9 (permalink) |
| Themenstarter Registriert seit: 13.06.07 ![]() Likes: 0 | So, ich habs dank eurer Hilfe geschafft, ihr seid gold wert @bLaCk-DrAg0n: Mein Zeugs sieht ein bisschen komplizierter aus, weiss aber nicht ob es effektiver ist...! ![]() @end4win: Danke dir, das mit print_r() war ein super tipp, da bin ich zuvor nicht drauf gekommen...! @LX: Ja, direkt hat es dann funktioniert Jetzt aber doch nochmals eine frage, die ich schon zu beginn gestellt habe... wie sicher ist das ganze?? Ist es mit einfach mitteln möglich sich als jemand anders anzumelden, ohne dessen passwort zu kennen?? also den Variabeln in der session von aussen irgendwelche werte zuzuweisen (also eben den genannten Nam User_Name, User_Vorname und eingeloggt)?? sollte ich vielleicht noch zusätzlich eine sicherheitsabfrage über die Cookies machen?? Nochmals vielen dank für eure hilfe...! |
| | |
| | #10 (permalink) |
| Member of Honour ![]() Registriert seit: 07.12.04 ![]() Likes: 256 | Bis jetzt kennen wir dein Script nicht. Aber wenn dies der einzige Prüfmechanismus ist geht es sicherer. http://www.cms-sicherheit.de/module-...-1-pid-30.html Gruss
__________________ Die deutsche Rechtschreibung ist Freeware, daher darf man sie kostenlos nutzen. Allerdings ist sie nicht Open Source, dies bedeutet man darf sie nicht verändern oder in veränderter Form veröffentlichen. |
| | |
| | #11 (permalink) |
| Themenstarter Registriert seit: 13.06.07 ![]() Likes: 0 | das ist mein script: Code: $EMail = $_POST["EMail_login"];
$Passwort = $_POST["Passwort_login"];
if($EMail && $Passwort)
{
$Query = "select * from benutzer where EMail = '$EMail'";
$Eintragen = mysql_query($Query);
$row = mysql_fetch_row($Eintragen);
if($row[1] == md5($Passwort))
{
$_SESSION['eingeloggt'] = 1;
$_SESSION['User_Name'] = $row[3];
$_SESSION['User_Vorname'] = $row[4];
}
} |
| | |
| | #12 (permalink) |
| Member of Honour ![]() Registriert seit: 07.12.04 ![]() Likes: 256 | Kommt darauf an was du schützen willst. Ein CMS - dann graut es mir. Ein paar extra Bilder von deinen Reisen - dies musst du entscheiden. zumindest die POST Daten solltest du validieren bevor du sie verwendest. Gruss
__________________ Die deutsche Rechtschreibung ist Freeware, daher darf man sie kostenlos nutzen. Allerdings ist sie nicht Open Source, dies bedeutet man darf sie nicht verändern oder in veränderter Form veröffentlichen. |
| | |
| | #13 (permalink) |
| PHP-Code: lass aber email vorher escapen... wenn bei dir magic_quotes_gpc on is (mit "if (get_magic_quotes_gpc()) " prüfbar) einfach nen $string = stripslashes($string);, oder du machst es mit mysql_real_escape_string($string). bei letzterem darfs aber glaub kein integer sein,also kein numerischer wert... sollte aber bei ner email eh nich der fall sein ^^. ohne escapen richten einträge wie: '; TRUNCATE `tabelle`; in dem email feld großen schaden an ^^ brauch ned so viel ressourcen bei mysql.. is doch schwachsinn ne ganze zeile zu selecten wenn du nur den wert einer einzigsten spalte brauchst... das "limit 1" dient dazu fehlern aus den weg zu gehen wenn du die spalte nich auch "UNIQUE" hast... | |
| | |
| | #14 (permalink) | ||
| Themenstarter Registriert seit: 13.06.07 ![]() Likes: 0 | Zitat:
![]() @bLaCk-DrAg0n: ok, den code werde ich von dir übernehmen, wenn ich wieder zu hause bin... was du aber mit dem escapen meinst, habe ich nicht ganz verstanden... der stripslashes(); bewirkt doch (so wie ich das gelesen und verstanden habe), dass die backslashes vor sonderzeichen die der addslashes(); macht wieder entfernt werden... was bringt mir denn das ganze?? also bei einer einwandfreien e-mail addi wohl soviso nichts, da es dort keine sonderzeichen hat, aber auch bei dem Zitat:
nochmals danke euch beiden...! PS: was das HTTP Request zeugs macht, von dem ich nur Bahnhof verstehe versuche ich mit meinem (lausigen) databecker buch zu verstehen... | ||
| | |
| | #15 (permalink) |
| Registriert seit: 14.06.07 ![]() Likes: 0 | Doch, durch eine ungeprüfte Variable kann schon Schaden entstehen. Wieviel hängt von der Konfiguration an ab. Aber man könnte zumindest mittels Bypassing den Login umgehen. Abhilfe schafft die Funktion mysql_real_escape_string() |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Bewertung meiner Website | L2G | Umfragen | 30 | 07.10.07 21:23 |
| ...mit meiner Uhr | RedEagle | Hardware Probleme | 3 | 02.09.07 05:58 |
| Login bei meiner Website | Lilu | (Web-) Design und webbasierte Sprachen | 8 | 14.06.07 12:38 |
| WebSite LogIn mit VB | DolphVS | Code Kitchen | 2 | 12.11.05 19:15 |
| Mit meiner Grafikkarte | choasman | Die Problemzone | 3 | 23.10.04 16:36 |