Sicherheit bei eigenen Scripten gewährleisten

  • Hallo,

    ich sitze gerade daran ein eigens Script zu schreiben, welches verschiedene Wordpress Funktionen wie z.B. wp_insert_post() nutzt. Was mich jetzt interessiert, sind generelle Sicherheitsaspekte. Wenn ich Wordpress Funktionen nutze um ein Attachment einzufügen, einen Beitrag zu schreiben oder was auch immer. Wie soll ich mit übermittelten Werten sicherheitstechnisch verfahren?

    Wenn ich z.B. einen Post mit Werten aus einem übermittelten Formular erstelle:

    PHP
    $my_post = array();
     $my_post['post_title'] = $_POST['title'],
     $my_post['post_content'] = $_POST['content'];
     $my_post['post_status'] = 'pending';
     $my_post['post_author'] = 2;
     $my_post['post_category'] = array($_POST['cat']);
     
     $id = wp_insert_post($my_post);



    Welche Maßnahmen sollte ich mit den übermittelten Werten $_POST['title'] und $_POST['content'] u.s.w. treffen, die ich in den Post einfügen will, um Injections oder Angriffe zu vermeiden. Werden bei Wordpress die Werte automatisch überprüft, escaped u.s.w. oder sollte ich vorher bestimmte Sicherheits-Funktionen von Wordpress aufrufen und wenn ja, welche Wordpress-eigenen gibt es?

    Gruß
    Oneside

    Erfolgreicher bloggen: Tipps und Tricks für WordPress Blogger: http://www.blog-mal.de

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Function Reference/wp insert post WordPress Codex

    Zitat von Codex

    This function inserts posts (and pages) in the database. It sanitizes variables, does some checks, fills in missing variables like date/time, etc. It takes an object as its argument and returns the post ID of the created post (or 0 if there is an error).


    Was es genau macht, da müsstest du im Code nachschauen (wp-includes/post.php wenn ich mich nicht irre).

  • Ja danke, ich meinte jetzt aber nicht nur auf diese eine Funktion bezogen, sondern wenn ich generell irgendwelche Daten über Wordpress Funtionen eintrage/übermittle. Wie werden sonst in Wordpress Daten bereinigt/gesichert wenn jemand im Adminbereich einen Post erstellt oder andere Daten eingibt? Es muss ja mit Sicheheit irgendwelche Funktionen geben, die Strings checken und sichern oder?

    Erfolgreicher bloggen: Tipps und Tricks für WordPress Blogger: http://www.blog-mal.de

  • Also ich hab mal ein bisschen rumprobiert und versucht das zu verstehen. Irgendwie hab ich aber ein Verständnisproblem :?.

    Wenn ich im normalen Wordpress Adminbereich einen Artikel anlege und als Titel und Inhalt einen String mit möglichen MySQL-Steuerzeichen eingebe, müsste dann nach dem Anlegen des Artikels in der Datenbank der Wert nicht gesichert (escaped) sein?

    Also wenn ich z.B sowas im Wordpress-Adminbereich als Posttitel eintrage:

    "" "?""""E"$'''''%%__"§"'''§'$'

    Müsste im Feld in der Datenbank dann nicht sowas stehen:

    \"\" \"?\"\"\"\"E\"$\'\'\'\'\'%%__\"§\"\'\'\'§\'$\'

    Erfolgreicher bloggen: Tipps und Tricks für WordPress Blogger: http://www.blog-mal.de

  • Nein. Die Daten werden ja nur für die Übertragung zum Server maskiert - eben damit sie da (d.h. während der Übertragung) keinen Schaden anrichten. Was am Ende in der DB steht wird ja von dieser nicht mehr interpretiert und muss demzufolge auch nicht maskiert sein.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!