Hier kann eine Notiz zum Merk-Eintrag hinzugefügt werden (optional)
| [ Anmelden zum schreiben ] |
| Loginfehlermeldung & Regi prüfung | |||
|---|---|---|---|
| SainTX Mitglied
Posts: 2 |
Hallo, in den letzten Wochen habe ich mich selbst mal ein bissle mit dem Ilch beschäftigt weil ich Ärger mit ein paar Usern hatte die mir so ein wenig auf den S*** gegangen sind.
Dazu sind mir 2 dinge aufgefallen. 1) Beim registrieren wird geprüft oder ein Username berreits in der DB existiert oder nicht. Dies wird mit der Emailaddy nicht gemacht. Somit sind Mehrfachanmeldungen über eine Emailadresse möglich. Ist das absicht ??? 2) Im Loginvorgang wird beim erfolglosen Login kein sichtbarer Fehlersatz ausgegeben was ich selbst fixen wollte, es aber noch nicht getan habe weil es evtl. Etwas mit der Sicherheit am hut haben könnte was ich von euch wissen wollte. Wäre es besser die User im unklaren zu lassen ob in dem eingegebenen Username oder PW ein Eingabefehler gemacht wurden, oder wäre es besser einen genauen Fehlersatz auzugeben ??? (Frage wegen Sicherheit, Hackversuche etc.) |
||
| puta-madre Mitglied
Posts: 94 |
Irgendwie gibd dir hier keiner eine Antwort drauf jedoch hätte ich es gerne gewusst :-(
|
||
| Nano.v1 Hall Of Fame
Posts: 896 |
frage 1: kann man natürlich ändern, wäre eine klausel im prüfcase der regist.php
frage 2: ist machbar und ich behaupte lediglich schönheitssache, der text muß ja keinerlei hinweiß auf den fehler enthalten, sondern lediglich die user hinweisen das ein feher aufgetretten ist Kein Support ausserhalb dieses Forum, es sei denn ich biete es selbst an, und das passiert ....?! Nano´s Ilch-Seite |
||
| Nano.v1 Hall Of Fame
Posts: 896 |
zum email-check
in der datei: include/contents/user/regist.php ab zeile 43 den $ch_name = false;
$xname = escape_nickname($name);
if (!empty($name) AND $xname == $name AND 0 == db_result(db_query("SELECT COUNT(*) FROM prefix_user WHERE name = BINARY '".$name."'"),0)) {
$ch_name = true;
}
if ( empty($name) OR empty($email) OR $name != $xname OR $ch_name == false ) {
$title = $allgAr['title'].' :: Users :: Registrieren :: Step 2 von 3';
$hmenu = $extented_forum_menu.'<a class="smalfont" href="?user">User</a><b> » </b><a class="smalfont" href="?user-regist">Registrieren</a><b> » </b>Step 2 von 3'.$extented_forum_menu_sufix;
$design = new design ( $title , $hmenu, 1);
$design->header();
if (empty($name) OR empty($email)) {
$fehler = $lang['yourdata'];
} elseif ($name != $xname) {
$fehler = $lang['wrongnickname'];
} elseif ($ch_name == false) {
$fehler = $lang['namealreadyinuse'];
}
durch #username prüfen
$ch_name = false;
$xname = escape_nickname($name);
if (!empty($name) AND $xname == $name AND 0 == db_result(db_query("SELECT COUNT(*) FROM prefix_user WHERE name = BINARY '".$name."'"),0)) {
$ch_name = true;
}
#email-addy prüfen
$ch_email = false;
$xemail = escape($_POST['email'],'string');
if (!empty($email) AND $xemail == $email AND 0 == db_result(db_query("SELECT COUNT(*) FROM prefix_user WHERE email = BINARY '".$email."'"),0)) {
$ch_email = true;
}
if ( empty($name) OR empty($email) OR $name != $xname OR $email != $xemail OR $ch_name == false OR $ch_email == false ) {
$title = $allgAr['title'].' :: Users :: Registrieren :: Step 2 von 3';
$hmenu = $extented_forum_menu.'<a class="smalfont" href="?user">User</a><b> » </b><a class="smalfont" href="?user-regist">Registrieren</a><b> » </b>Step 2 von 3'.$extented_forum_menu_sufix;
$design = new design ( $title , $hmenu, 1);
$design->header();
if (empty($name) OR empty($email)) {
$fehler = $lang['yourdata'];
} elseif ($name != $xname) {
$fehler = $lang['wrongnickname'];
} elseif ($ch_name == false) {
$fehler = $lang['namealreadyinuse'];
} elseif ($email != $xemail) {
$fehler = 'eMail-Adresse inkorrekt';
} elseif ($ch_email == false) {
$fehler = 'eMail-Adresse ungültig, da schon verwendet';
}
ersetzen, dann prüft er auch die emails Kein Support ausserhalb dieses Forum, es sei denn ich biete es selbst an, und das passiert ....?! Nano´s Ilch-Seite |
||
| Nano.v1 Hall Of Fame
Posts: 896 |
zu frage 2 am einfachsten folgendes machen:
in include/templates/user/ eine datei anlegen mit namen login_error.htm und mit folgendem inhalt befüllen: <table width="100%" border="0" cellspacing="0" cellpadding="10">
<tr>
<td>
<form action="index.php?user-login" method="POST">
<fieldset>
<legend><b>{_lang_LOGIN}</b></legend>
<label style="padding-left:80px;"><b>Der LogIn war fehlerhaft, bitte erneut versuchen</b></label><br /><br />
<label style="float:left; width:60px;">{_lang_nickname}</label><b style="float:left; text-align:left; width:20px;">:</b><input type="text" style="margin-bottom:2px;" tabindex="1" name="name" maxlength="15" /><br />
<label style="float:left; width:60px;">{_lang_password}</label><b style="float:left; text-align:left; width:20px;">:</b><input type="password" style="margin-bottom:2px;" tabindex="2" maxlength="20" name="pass" /><br />
<label style="float:left; width:80px;"> </label><input type="hidden" name="wdlink" value="{WDLINK}" /><input type="submit" style="margin-bottom:2px;" tabindex="3" value="{_lang_login}" name="user_login_sub" /><br /><br />
<label style="padding-left:80px;"><a href="index.php?user-regist">{_lang_registernow}</a></label><br />
<label style="padding-left:80px;"><a href="index.php?user-remind">{_lang_forgottenpassword}?</a></label>
</form>
</td>
</tr>
</table>
{EXPLODE}
{_lang_yourareloged}!
{EXPLODE}
{_lang_login3failure}
jetzt noch die datei include/contents/user/login.phpabändern so das in zeile 23 $tpl = new tpl ( 'user/login_error.htm' ); steht, und schon hast du auch den loginfehler-text Kein Support ausserhalb dieses Forum, es sei denn ich biete es selbst an, und das passiert ....?! Nano´s Ilch-Seite |
||
| [ Anmelden zum schreiben ] |