Login  Regeln Aktuelles Datum und Uhrzeit: 28.08.2008, 07:33  
Startseite
Registrieren
Profil
Suchen
Mitgliederliste
Verzeichnis
Impressum



Partner
kostenlose Homepage
Fussball
Kostenloses Forum
SMS kostenlos
Webhosting
Webmasterportal
Kostenlos
Kredit ohne Schufa
Esoterik-Forum
Selbsthilfeforum
Artikel Backlink
Datenrettung
Sicherheit meines Login-Scripts

 
Neues Thema eröffnen   Neue Antwort erstellen    Webmaster Forum -> Serverseitige Websprachen
Vorheriges Thema anzeigen Nächstes Thema anzeigen 
Autor Nachricht
Invis_Hunter
Stammuser [User]
Stammuser



Anmeldung: 09.04.05
Beiträge: 31

BeitragVerfasst am: 04.03.2007, 14:31    Titel: Sicherheit meines Login-Scripts Antworten mit Zitat

Hallo,
ich habe mir für eine Hompage ein login-script gebastelt. Nun wollte ich euch mal fragen was man daran verbessern kann (in sachen Sicherheit).
Hier mal der Code zu meinem Loginform:

Code:

<? if(!isset($_POST['login_nickname']) OR !isset($_POST['login_passwort'])){ ?>
<center><h3>Login</h3></center>
<form action="" name="login" method="post">
<table align="center" border="0.5" style="border:solid 1px #000000;">
<tr>
<td width="100px">
Nickname
</td>
<td>
<input type="Text" name="login_nickname" size="20">
</td>
</tr>
<td width="100px">
Passwort
</td>
<td>
<input type="Password" name="login_passwort" size="20">
</td>
</tr>
</table>
<br>
<center><input type="Submit" name="submit" value="Login"> <input type="reset"></center>
</form>
<? }else{
$sql = 'SELECT
       name,
       passwort
          FROM
       admin
         WHERE
       name = "'.$_POST['login_nickname'].'" && passwort = "'.md5($_POST['login_passwort']).'"';

$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);

if(md5($_POST['login_passwort']) != $row['passwort']){ ?>
<center><br><font color="red">Sie haben ein falsches Passwort eingegeben!</font><br><br></center>
<? }else{
$_SESSION['ADMIN_NAME'] = ''.$row['name'].'';
$_SESSION['ADMIN_IP'] = ''.$_SERVER['REMOTE_ADDR'].'';
?>
<center><br>Sie haben sich erfolgreich eingeloggt, sie werden in einer Sekunde weitergeleitet!<br><br></center>
<head>
<meta http-equiv="refresh" content="1; url=index.php?show=eintraege">
</head>
<? }
} ?>


Ich überprüfe dann mit folgendem Code ob der admin eingeloggt ist:

Code:

<? if(isset($_SESSION['ADMIN_NAME']) && $_SESSION['ADMIN_IP'] == $_SERVER['REMOTE_ADDR']){
echo 'Eingeloggt';
}?>



Jetzt wollte ich halt fragen was man daran verbessern kann?

Danke schonmal im vorraus!
mfg


PS: Schreibfehler sind beabsichtigt und dienen zur allgemeinen Belustigung Auf den Arm nehmen


Nach oben
Private Nachricht senden
eforium
Bekannter [Mod]
Bekannter



Anmeldung: 20.01.06
Beiträge: 1304
Wohnort: Irgendwo i ...

BeitragVerfasst am: 04.03.2007, 18:17    Titel: Antworten mit Zitat

Total unsicher.

wenn jemand als name
Zitat:
" OR `userid` = '1' --

eingibt, bekommt er Admin zugang.

Verwende mindestens
http://php.net/hmtlspecialchars
und
http://php.net/addslashes

Bei allen Eingaben.

Weiterführend: http://de.wikipedia.org/wiki/XSS

_________________
Deihro Internet Programming - Ihre Webseite zu angenehmen Konditionen
Sie suchen eine TemplateEngine? Klicken Sie!


Nach oben
Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
chris1988
Bekannter [User]
Bekannter



Anmeldung: 12.12.05
Beiträge: 1528

BeitragVerfasst am: 04.03.2007, 18:28    Titel: Antworten mit Zitat

würde http://de2.php.net/mysql_real_escape_string nicht ausreichen?


MfG,

chris

_________________
Mancher ertrinkt lieber,
als daß er um Hilfe ruft.


(Wilhelm Busch)


Nach oben
Private Nachricht senden
Invis_Hunter
Stammuser [User]
Stammuser



Anmeldung: 09.04.05
Beiträge: 31

BeitragVerfasst am: 04.03.2007, 19:50    Titel: Antworten mit Zitat

eforium hat folgendes geschrieben:
Total unsicher.

wenn jemand als name
Zitat:
" OR `userid` = '1' --

eingibt, bekommt er Admin zugang.

[...]


Ich habe es getestet. Da ich nach der Datenbankabfrage nochmal überprüfe wie das Passwort ist, kann man das nicht umgehen, weil er anzeigt das ein falsches passwort eingegeben wurde.
Aus sicherheitsgründen hab ich die abfrage nun so modifiziert:

Code:

name = "'.addslashes($_POST['login_nickname']).'" && passwort = "'.md5($_POST['login_passwort']).'"';


Könnt ihr mir noch weitere Tipps geben? Sehr glücklich


PS: Danke an alle für die bisherige hilfe! Smilie


Nach oben
Private Nachricht senden
eforium
Bekannter [Mod]
Bekannter



Anmeldung: 20.01.06
Beiträge: 1304
Wohnort: Irgendwo i ...

BeitragVerfasst am: 04.03.2007, 21:10    Titel: Antworten mit Zitat

Ja, das gleiche beim Hash (md5($_REQUEST['passwd'])) zu tun...

Da dieser Hash weder \ noch ' oder " enthält, kann das dort gefahrenlos angewendet werden... Lieber einmal zu viel, als einmal zu wenig...

_________________
Deihro Internet Programming - Ihre Webseite zu angenehmen Konditionen
Sie suchen eine TemplateEngine? Klicken Sie!


Nach oben
Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
lundner
Beliebter [User]
Beliebter



Anmeldung: 15.11.06
Beiträge: 312
Wohnort: Zingst

BeitragVerfasst am: 04.03.2007, 23:40    Titel: Antworten mit Zitat

das sicherste ist fast alle eingaben gegen muster zu testen - sprich du schaust, ob die eingabe nur zeichen enthält, die du auch ausdrücklich erlaubt hast! Winken

wenn es nur um einen admin-bereich geht sollte die nutzung von .htaccess doch sicher sein oder?!@all

_________________
meine Homepage: lundner.com
meine Fotos:photos.lundner.com


Nach oben
Private Nachricht senden Website dieses Benutzers besuchen AIM-Name MSN Messenger
Invis_Hunter
Stammuser [User]
Stammuser



Anmeldung: 09.04.05
Beiträge: 31

BeitragVerfasst am: 05.03.2007, 14:41    Titel: Antworten mit Zitat

So, also vielen Dank nochmal an alle Sehr glücklich

@lundner
Es geht mitlerweile um einen ganzen Benutzter-Login, also um eine größere seite mit registrierungsoptionen usw. Deswegen währs mir so schon ganz lieb, weil ich ja sonst für jeden benutzter eine eigene htaccess erstellen müsste.

mfg


Nach oben
Private Nachricht senden
800XE
Bekannter [Mod]
Bekannter



Anmeldung: 24.10.04
Beiträge: 1190
Wohnort: Speyer

BeitragVerfasst am: 06.03.2007, 01:07    Titel: Antworten mit Zitat

eforium hat folgendes geschrieben:
Total unsicher.

Verwende mindestens
http://php.net/hmtlspecialchars
und
http://php.net/addslashes

Bei allen Eingaben.

addslashes ist doch normal automatisch durch MagiCQuotes drin
und wenn man dann selbst nochmal slashesAdded, dann sind sie doppelt ....

_________________
Seien wir realistisch, versuchen wir das Unmögliche!
CMS800 :::::::::: Andy 800XE Zmuda :::::::::
ich bin nicht unhöflich, ich bin binär


Nach oben
Private Nachricht senden Website dieses Benutzers besuchen
Invis_Hunter
Stammuser [User]
Stammuser



Anmeldung: 09.04.05
Beiträge: 31

BeitragVerfasst am: 06.03.2007, 17:21    Titel: Antworten mit Zitat

Aber noch eine Frage:
Ist das so jetzt einigermassen sicher, weil ich das script gerne so langsam Online stellen möchte?

mfg


Nach oben
Private Nachricht senden
chris1988
Bekannter [User]
Bekannter



Anmeldung: 12.12.05
Beiträge: 1528

BeitragVerfasst am: 06.03.2007, 17:34    Titel: Antworten mit Zitat

So wie ich das sehe gibt es noch keinen Bruteforce-Schutz. Der sollte aber wohl gegeben sein!?


Habe im Moment ein ähnliches Script und bin so in etwa genausoweit wie du hier jetzt Smilie

Hatte gedacht, dass man das ganze mit diesen dynamischen Bildern lösen könnte, bei denen sich die Aufschrift immer ändert und letztere abgefragt wird. Über einen Link darüber oder alternative Ideen würde ich mich sehr freuen Smilie

(Für einen normalen Benutzerlogin ist das wahrscheinlich zu nervig, ich nutze das nur für ein Admin-Bereich).


Grüße,
chris

_________________
Mancher ertrinkt lieber,
als daß er um Hilfe ruft.


(Wilhelm Busch)


Nach oben
Private Nachricht senden
Invis_Hunter
Stammuser [User]
Stammuser



Anmeldung: 09.04.05
Beiträge: 31

BeitragVerfasst am: 06.03.2007, 17:41    Titel: Antworten mit Zitat

Das mit der Bild abfrage ist auch recht leicht zu umgehen wenn man will. Ein bestimmter 1 Click-Hoster benutzt ein ziemlich komplizierten Bilder-Code den man eingeben kann, allerdings gibts programme die den ziemlich leicht knacken können.

Ich hätte eine alternative...weiss aber nicht ob das so der renner ist:
Du erstellst für jeden (Da du ja nur enen Adminlogin machst) besucher der Login Seite eine Session und ersellst dort eine Variable die anzeigt wie oft der Benutzter sich schon versucht hat unerfolgreich einzuloggen. Wenn die Zahl dann bei 3 oder so ist dann wird der Login für die Session halt gespeert und er kann es erst wieder versuchen wenn er ne neue Session bekommt oder du machst halt ein Script welches in in eine Datenbank einträgt und nach 30 Minuten oder so wieder entspeerst.
Sowas in der art (also mit der Datenbank) hab ich mir auch gedacht, nachdem du mich auf den Tipp gebracht hast (Danke! Sehr glücklich).

mfg


Nach oben
Private Nachricht senden
eforium
Bekannter [Mod]
Bekannter



Anmeldung: 20.01.06
Beiträge: 1304
Wohnort: Irgendwo i ...

BeitragVerfasst am: 06.03.2007, 20:19    Titel: Antworten mit Zitat

Wenn du dann mehrere Seiten hast, überprüfst du am besten mit Cookie und IP (da manche Proxy haben...) die Sessionsid. Diese kann auch selber erstellt werden, und muss nicht via session_start() gestartet werden.

Am besten ist es dann auch, wenn du die Sessionen inkl. eine Cookiecode in die DB einfügst, und auf jeder Seite überprüfst.

Zitat:
XSS kurz erklärt
XSS-Sicheres-Programmieren ist, keinen Angaben zu vertrauen, sondern alle zu überprüfen. Einfacher geht es, wenn man sagt, was man darf, und nicht, wenn man sagt, was man nicht darf.
[/quote]
_________________
Deihro Internet Programming - Ihre Webseite zu angenehmen Konditionen
Sie suchen eine TemplateEngine? Klicken Sie!


Nach oben
Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

Gehe zu:  

Ähnliche Beiträge
Thema Autor Forum Antworten Verfasst am
Keine neuen Beiträge Anmeldung und Login die 2. WebNicse Serverseitige Websprachen 1 22.08.2008, 19:24 Letzten Beitrag anzeigen
Keine neuen Beiträge Anmeldung und Login WebNicse Serverseitige Websprachen 19 02.08.2008, 18:39 Letzten Beitrag anzeigen
Keine neuen Beiträge Java Script Login Datei dennispgg Sitecheck 6 22.07.2008, 23:03 Letzten Beitrag anzeigen
Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten. [V] Clone Scripts zone4webmaster.de Kleinanzeigen 3 28.04.2008, 14:57 Letzten Beitrag anzeigen
Keine neuen Beiträge Joomla Login! Bulldok Einsteigerforum 6 06.04.2008, 21:21 Letzten Beitrag anzeigen
Threadübersicht