arbeite seit wenigen Tagen mit Contenido.
Habe folgende Situation:
Viele User (die im Backend nichts machen dürfen) haben interne Bereiche
auf einer Seite. Jeder Mitarbeiter hat seinen individuellen Bereich (konnte
dies mithilfe diverser Forumsbeiträge realisieren).
Nun hat jeder User ein zunächst globales Passwort, dass er aber selber ändern können muss.
Habe das folgendermaßen realisiert:
Ein Modul passwd_change mit folgendem Code im Output-Teil (umgändertes Login-Skript):
Code: Alles auswählen
<table width="165" border="0" cellspacing="0" cellpadding="0">
<tr><td height="30" colspan="2" ></td></tr>
<tr><td height="21" width="22" style="border: 0px; border-top:1px; border-bottom:1px; border-color: #F7C473; border-style: solid; background-color: #FCF2D5"><img src="images/wuerfel.gif" width="22" height="21" border="0"></td>
<td width="143" style="border: 1px; border-left:0px; border-color: #F7C473; border-style: dashed; background-color: #FCF2D5; padding-left:10px" class="punkte">Passwortänderung</td></tr>
<tr><td colspan="2" class="text" height="22" style="border: 1px; border-top:0px; border-color: #F7C473; border-style: dashed; background-color: #FCF2D5; padding-left:10px">
<?php
if (!isset($_POST[passwortaenderung]))
{
?>
<form method="post" action="front_content.php?idcat=23">
<table border="0">
<tr><td>Neues Passwort</td></tr>
<tr><td><input type="password" name="neuesPasswort1" value=""></td></tr>
<tr><td>Passwort nochmal</td></tr>
<tr><td><input type="password" name="neuesPasswort2" value=""></td></tr>
</table>
<input type="submit" name="passwortaenderung" value="Bestätigen">
</form><br>
<?php
} else {
if ($_POST[neuesPasswort1]!=$_POST[neuesPasswort2]){
echo "Sie haben 2 Verschiedene Passwörter eingegeben!<br>";
echo "<a href=front_content.php?idcat=23>Erneut eingeben</a>";
}
else{
$aktuellerBenutzer=$auth->auth["uid"];
$neuesPasswort=md5($_POST[neuesPasswort1]);
$sql="UPDATE `con_phplib_auth_user_md5` SET `password`='$neuesPasswort' WHERE `user_id` = '$aktuellerBenutzer'";
mysql_query($sql) or die("Fehler bei Datenbankzugriff!<br>".mysql_error());
echo "<center>Passwort geändert!</center>";
}
}
?>
</td></tr></table>
Nun meine Fragen:
1) Gibt es grundsätzlich an diesem Lösungsansatz etwas auszusetzen (etwas sicherheitsrelevantes?)
2) Wie man ebenfalls sieht mache ich eine hart-kodierte Weiterleitung zu idcat=23. Gibt es eine Lösung mit dem das Modul auf einer beliebigen Seite funktioniert?
3)Wie kann man die automatische Weiterleitung zu dem Standard-Login nach falscher Passworteingabe oder Zugriff auf geschützte Kategorie permanent deaktivieren?
4) Habe noch nicht Verstanden wozu der Input-Teil bei den Modulen ist, kann das jemand kurz erklären? Danke
