it-swarm.com.de

Eingebaut flüchten WP funktion return strings

Sollte man die Ausgabe von eingebauten WP Funktionen wie get_permalink() und bekannten WP Plugins wie ACF (Advanced Custom Fields) wie get_field() filtern?

Zum Beispiel ruft get_permalink()home_url() auf, das get_home_url() aufruft, von denen keine Filterung der Daten vornimmt . In ähnlicher Weise funktionieren the_content(), the_title() und die restlichen bekannten Loop-bezogenen Funktionen.

Ist deshalb folgendes ausreichend? ( no esc_attr() for WP and ACF functions )

<?php while ($wp_query->have_posts() && __return_true($wp_query->the_post()) ) : ?>
    <a href="<?=get_the_permalink()?>">
        <img src="<?=get_field('homepage_thumbnail')['sizes']['thumbnail']?>" />
    </a>
<?php endwhile; ?>

Oder sollte ich mit den Daten aus dem Plugin vorsichtiger umgehen? ( note esc_attr() hinzugefügt zu ACF-Bildquelle, dritte Zeile )

<?php while ($wp_query->have_posts() && __return_true($wp_query->the_post()) ) : ?>
    <a href="<?=get_the_permalink()?>">
        <img src="<?=esc_attr(get_field('homepage_thumbnail')['sizes']['thumbnail']?>)" />
    </a>
<?php endwhile; ?>

Oder sollte ich auch bei den Lagerfunktionen WP super vorsichtig sein? ( Nachricht esc_attr() hinzugefügt zu WP anchor href, zweite Zeile )

<?php while ($wp_query->have_posts() && __return_true($wp_query->the_post()) ) : ?>
    <a href="<?=esc_attr(get_the_permalink())?>">
        <img src="<?=esc_attr(get_field('homepage_thumbnail')['sizes']['thumbnail']?>)" />
    </a>
<?php endwhile; ?>
3
dotancohen

Escaping wird verwendet, um gültiges HTML oder andere Formate zu erzeugen, und es hängt vom Kontext ab.

Es ist erforderlich, eine URL in so etwas wie <a href="<?php echo $url?>".... zu maskieren, um alle "&" Zeichen durch & zu ersetzen (obwohl Browser dies höchstwahrscheinlich für Sie korrigieren werden, wenn Sie dies nicht tun).

Das Escapieren einer URL in einem Eingabeelement wie <input value="<?php echo $url?>"... erfordert kein Ersetzen von "&", erfordert jedoch das Ersetzen von Anführungszeichen.

Da es sich um eine kontextsensitive Escape-Funktion handelt, können Sie im Allgemeinen davon ausgehen, dass die WordPress-API dies nicht für Sie tut. Was Plugins tun, hängt vom Plugin selbst ab.

1
Mark Kaplun

Sie sollten immer Ihren Daten entkommen, unabhängig von ihrer Herkunft. In Ihrem Beispiel sollten die URLs mit esc_url() maskiert werden.

WordPress hat viele Funktionen, die verwendet werden können. Es gibt einen Artikel über Datenvalidierung im Codex, in dem die verschiedenen verfügbaren Funktionen aufgelistet sind.

3
RRikesh