Seguridad de SQL al almacenar datos usando las funciones integradas de WordPress

2 minutos de lectura

Cuando uso las funciones integradas de WordPress como

add_post_meta, update_post_meta, add_user_meta, update_user_meta

wp_insert_post, wp_insert_user

¿Debo hacer algún escape o desinfección antes de pasar los datos ingresados ​​por el usuario a estas funciones o estas funciones por sí mismas hacen el truco?

aquí en codex Action_Reference/save_post los datos se pasan a update_post_meta justo fuera de la $_POST.

Los valores meta se desinfectan usando sanitize_metael contenido de la publicación se desinfecta mediante wp_kses_postetc… Puede asumir con seguridad que las funciones integradas son seguras.

  • ¿Qué pasa con wp_insert_user? He visto dos tutoriales que en ellos se escapan los datos antes de pasar a esta función.

    – MTVS

    20 de abril de 2013 a las 17:03

  • Los usuarios son desinfectados con sanitize_userpuede inspeccionar lo que hace aquí: core.trac.wordpress.org/browser/tags/3.5.1/wp-includes/…

    – cavar

    20 de abril de 2013 a las 17:05

  • pero estas funciones sanitize_meta, … solo apply_filters, y cuando busqué add_filters, encontré que las variables con valor predeterminado de cadena vacía están enganchadas a ellas, ¿alguna idea?

    – MTVS

    20 de abril de 2013 a las 17:20


  • No estoy seguro si entiendo tu pregunta. El retorno de las funciones de desinfección es filtrable, por lo que, en teoría, la seguridad podría verse debilitada a través de estos filtros. Si no hay ninguna función enganchada al filtro, la sanitización simplemente se realizará a la manera de WordPress.

    – cavar

    20/04/2013 a las 17:30

  • Tiene razón, eso le permite hacer un filtrado muy específico, si es necesario. Como regla general, nunca debe confiar en la entrada del usuario. WP tiene un gran arsenal de funciones de formato disponibles, podría usar, por ejemplo, sanitize_text_field para desinfectar la entrada del usuario para que se almacene como post meta: codex.wordpress.org/Function_Reference/sanitize_text_field

    – cavar

    20/04/2013 a las 18:00

¿Ha sido útil esta solución?