wp_kses ignoriere erlaubt und erlaube alles

Hier ist ein Beispiel:

$allowedPart = ""; $unsafePart = "

A title

"; $unsafePart .= "alert('a script!!!');"; $unsafeString = $allowedPart . $unsafePart; $allowed = array("a"=>array( "href"=>array() )); $sanitizedString = wp_kses($unsafeString, $allowed);

$sanitizedString sollte gleich $allowedPart , aber etwas schief geht und $sanitizedString bleibt gleich $unsafeString .

Was ist los mit dir?

==============================

Sorry, nach dem Speichern in der database, habe ich location.reload() , und folglich in der Textarea wurde der ursprüngliche Inhalt beibehalten, aber in der database ist der Wert fast korrekt. Dieses sekundäre Problem wurde getriggers mit:

window.location.href = window.location.href;

Es gibt jedoch ein Problem, “href” verschwindet auch , warum?

Beispielsweise

Link wird zu Link

Versuche etwas wie: $allowed = array( 'img'=>array( 'src'=>array(), ));

wird zu

Es ist so, als ob wp_kses () alle Attribute im Sub-Array (wie href oder src) als unzulässig erkennt und sie und deren Inhalt filtert.

==============================

Mit doppelten Anführungszeichen anstelle von einzelnen Anführungszeichen scheint sich zu lösen.

$allowed = array( 'img'=>array( 'src'=>array(), ));

Solutions Collecting From Web of "wp_kses ignoriere erlaubt und erlaube alles"

wp_kses ( Codex ) entfernt nicht erlaubte Tags, entfernt aber deren Inhalt nicht. Wenn Sie also ein “{something}” haben, entfernt wp_kses nur die Tags und nicht den Inhalt und gibt “{something}” zurück. Daher ist dies ein beabsichtigtes Verhalten und Ihr Problem scheint kein Fehler zu sein.