Estoy trabajando en un complemento de WordPress y necesito desinfectar los datos POST dentro de esta función. ¿Sería sanitize_text_field() la mejor manera de hacerlo? Además, ¿cuál es la forma correcta de agregarlo al código a continuación?
header( 'Content-Type: application/json' );
global $wpdb;
$session_id = $_POST['session_id'];
$procedure_name = $wpdb->prefix . 'get_geojson_route';
$gps_locations = $wpdb->get_results($wpdb->prepare(
"CALL {$procedure_name}(%s);",
array(
$session_id
)
));
Para sanear los datos de la publicación, wordpress da la función:
$título = sanitize_text_field ($_POST[‘title’] );
Prueba esto
-
Esta es la solución con la que terminé yendo.
– Stpete Design
15 de abril de 2018 a las 0:08
-
que hay de usar
sanitize_post()
? desarrollador.wordpress.org/reference/functions/sanitize_post– gillespieza
21 de febrero de 2020 a las 11:36
-
@gillespieza,
sanitize_post()
desinfecta los campos para un objeto WP_Post.– Mariana
19 de febrero de 2021 a las 12:58
-
@stpetedesign, ¡no olvides votar mi respuesta si te ayudó! Gracias.
– Rakhi Prajapati
12 de mayo de 2021 a las 11:22
En PHP puedes hacer como:
// it prevents from XSS
$_GET = filter_input_array(INPUT_GET, FILTER_SANITIZE_STRING);
$_POST = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);
Esto desinfectará su $_GET
y $_POST
arreglos
Más detalles: PHP -Desinfectar valores de una matriz
Si lo quieres en WordPress mira este enlace:
https://code.tutsplus.com/articles/data-sanitization-and-validation-with-wordpress–wp-25536
Usar $wpdb->prepare está desinfectando por usted
-
Pero deberías tenerlo en una matriz. Debería ser simplemente $wpdb->prepare( “CALL {$procedure_name}(%s);”, $session_id );
– Chris Flanagan
5 abr 2018 a las 21:36
-
Si su versión de PHP es anterior a 8.1, puede usar
$form_data = filter_input_array( INPUT_POST, FILTER_SANITIZE_STRING );
De lo contrario, puedes usar
$form_data = filter_input_array( INPUT_POST, FILTER_SANITIZE_FULL_SPECIAL_CHARS );
Lamentablemente, la mejor manera sería no usar WordPress en absoluto. La otra buena manera sería comenzar definiendo qué desinfectar significa para ti. Este fragmento que publicaste es todo lo que es malo con WordPress y las prácticas que fomenta… estás aceptando un nombre de función de la entrada del usuario. Eso me permite meter cualquier tipo de basura. Ni siquiera importa si rompo algo, puedo hacer que su sitio se equivoque y obtener información que se supone que no debo ver. Y está la cuestión de si llamar al procedimiento es la herramienta adecuada para el trabajo.
– NB
5 abr 2018 a las 20:46