it-swarm.com.de

Wie kann ich die Empfangsdaten von diesem Code bereinigen?

<form id="tellastory" method="post" action="">
    <label for="fullname">Full Name </label>
    <input id="fullname" name="fullname" type="text" maxlength="255" value=""/> 
    <label for="title">Title </label>
    <input id="title" name="title" type="text" maxlength="255" value=""/>
    <label for="title">Message </label>
    <textarea id="editor" name="editor" rows="20" cols="50"></textarea>
    <input type="hidden" name="form_id" value="123456" />       
    <input id="saveForm" type="submit" name="submit" value="submit" />
</form>
<?php
$storyteller_user_id = "3";  //your guest user id here
//$stories_category = "3";  //your stories category id here
$key = "storyteller";

if ($_POST['form_id']=="123456") {
    $my_post = array(); 
    $my_post['post_title'] =$_POST['title'];
    $my_post['post_content'] = $_POST['editor'];
    $my_post['post_status'] = 'publish';
    $my_post['post_author'] = $storyteller_user_id;
    $my_post['post_category'] = array($stories_category);
    $post_Num = wp_insert_post( $my_post );
    add_post_meta($post_Num, $key, $_POST['fullname']);
}
?>
1
cmsdeployed

Desinfektion und Flucht sind immer stark kontextabhängig und ich bin kein Experte auf diesem Gebiet. Trotzdem habe ich in letzter Zeit selbst einige "Recherchen" durchgeführt. Ich werde versuchen, Ihnen einige allgemeine Richtlinien zur Verfügung zu stellen, bis jemand mit mehr Einsicht zu Ihnen kommt und diese anbietet die ultimative Antwort (die ich auch gerne lesen werde.)

Codex-Artikel über Datenvalidierung ist ein guter Anfang. Ich glaube, esc_html () ist die am häufigsten verwendete Methode für die Ausgabe.

Es scheint auch einen Neuling in der WP Escape-Familie in WordPress 3.1 zu geben - esc_textarea () .

WordPress versucht, Ihnen das Leben wie immer zu erleichtern. Achten Sie also darauf, vorhandene kontextspezifische Funktionen wie sanitize_title () oder sanitize_user () .

Ich empfehle Ihnen, ein paar Quellensprünge zu machen und die Funktionen in wp-includes/formatting.php durchzuarbeiten, um mehr über verschiedene Methoden und deren Aufbau zu erfahren.

In letzter Zeit gab es eine ähnliche Diskussion über wp-Hacker - definitiv einen Besuch wert:
WP-HACKERS: Speichern von Eingaben von nicht vertrauenswürdigen Benutzern . Ich werde es wagen, Andrew Nacins Beitrag dazu zu zitieren:

Verallgemeinern Sie hier: Die Desinfektion sollte beim Speichern und beim Ausblenden erfolgen.

Sie möchten also kses , absint , esc_url_raw , sanitize_text_field , was hast du, beim Speichern. Verwenden Sie dann esc_url , esc_html zusammen mit Texturierung oder was auch immer Sie sonst benötigen was hast du denn am ausgang Möglicherweise werden Anwendungsfälle für die Ausführung von kses angezeigt. Wir machen es in einigen Fällen. Solange die Daten sicher eingehen, werden sie auch sicher herauskommen. (Und wenn nicht, dann haben Sie ein größeres Problem.)

Willst du noch mehr? ;)
The Code Cave: WordPress Security - ein Plugin richtig gemacht
Smashing Magazine: Schutz der Webbenutzer durch Bereinigung der Eingabedaten

Ich wünsche Ihnen einen schönen und sicheren Tag.

4
Michal Mau