web-dev-qa-db-fra.com

Qui est responsable de la désinfection des données dans le développement WordPress?

J'étudie actuellement comment écrire du code WordPress plus sécurisé en implémentant la validation, la désinfection et l'évacuation des données, le cas échéant. La validation et l'évasion sont parfaitement logiques, mais je suis un peu confus en ce qui concerne l'assainissement.

Si j'utilise une fonction telle que add_post_meta, cette fonction effectue-t-elle la désinfection pour moi? Qu'en est-il de set_option ou d'autres qui interagissent avec la base de données. J'interagis habituellement avec la base de données via ces fonctions. Dans quelles situations dois-je me préoccuper moi-même de la désinfection?

1
Mauro Bringolf

Oui, WordPress nettoie les données lors de son acheminement vers la base de données, à condition que vous utilisiez les API.

Si vous utilisez l'objet wpdb, vous devrez toutefois utiliser la méthode prepare pour le désinfecter. Je recommande contre l'écriture de requêtes SQL car elle contourne les caches d'objet, etc., mais si vous devez écrire votre propre code SQL, utilisez wpdb pour le préparer et l'exécuter.

Pour les appels tels que WP_Query, get_posts, add_post_meta, etc., une désinfection a lieu

Notez qu'il s'agit uniquement d'une désinfection de base de données. Toute désinfection ou validation supplémentaire, telle que la réduction d'espaces de fin, la validation d'URL, les balises de masquage, l'échappement, etc., doit être effectuée dans votre code.

3
Tom J Nowell