CPO 4.1.5: CSRF check failed

Dieses Forum enthält Diskussionen zu Bugs in ConPresso 4 und deren Lösungen.
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 730
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 221 Mal
Danksagung erhalten: 29 Mal

Beitrag von hscha »

Hallo Markus,
Die sagen einfach mal, wie sie das Formular da rein gebracht haben und zeigen wie ihr Code dafür aussieht. Es kann soooo einfach sein...
Tja, sorry, wenn ich zu allgemein gefragt habe...
Auf der o.g. Schulsite wird das Login-Formular über eine Funktion ausgegeben, die den HTML-Code mit der übergebenen Rubric-ID generiert:

Code: Alles auswählen

// login-box für die mitarbeiterseite:
function userlogin($loginrubric) {
 	global $infotext, $noprint, $userid, $username;
	if (defined('LOGIN')){
		$infotext ='';
	}
	else {
	$infotext = '<div style="position: relative; left: 100px; height: 100px; width: 300px; text-align: right;"><strong>Anmelden</strong> mit den verabredeten Daten:<br /><form action="../_rubric/member.php?rubric='.$loginrubric.'" name="login" method="post"><input type="hidden" value="dologin" name="action" /><input type="hidden" value="'.$loginrubric.'" name="rubric" />Benutzername:&nbsp;<input type="text" name="username" /><br />Passwort:&nbsp;<input type="password" name="password" /><br /><input type="submit" value="login" class="button" /></form></div>';
	}
}
Der HTML-Code wird an die Variable $infotext übergeben. Die Variable $infotext steht in der /_rubric/_local_header.php und gibt das Formular vor dem Artikelinhalt aus.
Wahrscheinlich wird das mit dem CSRF-Check so gar nicht mehr funktionieren, weil

Code: Alles auswählen

$antiCSRF->printInput('dologin');
beim Absenden des Formulars aufgerufen werden muss...

O.k. Markus, ich hoffe, dass du mit diesen Infos ein bisschen mehr anfangen kannst als mit meinem vorigen Posting :oops:

Grüße von
Horst
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7377
Registriert: 01.01.1970 02:00
Hat sich bedankt: 114 Mal
Danksagung erhalten: 938 Mal

Beitrag von MarkusR »

Oh, nochmal anders als gedacht.

Anyway, gar kein Problem. Wenn Du schon PHP-Code hast, dann mußt Du ihn ja nur genauso ergänzen, wie in der mod_functions-Funktion.

Code: Alles auswählen

// login-box für die mitarbeiterseite: 
function userlogin($loginrubric) { 
   global $infotext, $noprint, $userid, $username;
   $antiCSRF = $GLOBALS['antiCSRF']; 
   if (defined('LOGIN')){ 
      $infotext =''; 
   } 
   else { 
   $token = $antiCSRF->getInput('dologin'); 
   $infotext = '<div style="position: relative; left: 100px; height: 100px; width: 300px; text-align: right;"><strong>Anmelden</strong> mit den verabredeten Daten:<br /><form action="../_rubric/member.php?rubric='.$loginrubric.'" name="login" method="post"><input type="hidden" value="dologin" name="action" /><input type="hidden" value="'.$loginrubric.'" name="rubric" />' . $token . 'Benutzername:&nbsp;<input type="text" name="username" /><br />Passwort:&nbsp;<input type="password" name="password" /><br /><input type="submit" value="login" class="button" /></form></div>'; 
   } 
}
Teste das mal.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 730
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 221 Mal
Danksagung erhalten: 29 Mal

Beitrag von hscha »

Hallo Markus,
ja, das funktioniert einwandfrei :D

Herzlichen Dank und
Grüße von
Horst