Asegura que una cadena sea una cláusula válida de ‘ordenar por’ de SQL.
sanitize_text_field ( $str )
Desinfecta una cadena de entrada del usuario o de la base de datos.
Desinfecta un título o devuelve un título alternativo.
sanitize_title_for_query( $title )
Desinfecta un título con el contexto de ‘consulta’.
sanitize_title_with_dashes( $title )
Desinfecta un título, reemplazando espacios en blanco y algunos otros caracteres con guiones.
Descripción
Limita la salida a caracteres alfanuméricos, guion bajo (_) y guion (-). El espacio en blanco se convierte en un guion.
Desinfecta un nombre de usuario, eliminando caracteres inseguros.
Realiza esc_url () para el uso de la base de datos.
wp_filter_post_kses( $data )
Desinfecta el contenido de las etiquetas HTML permitidas para el contenido de la publicación.
Descripción
El contenido de la publicación se refiere al contenido de la página del tipo ‘publicación’ y no a los $_POSTdatos de los formularios. Esta función espera datos recortados.
Elimina todo el HTML de una cadena de texto.
Ejemplo 1
A continuación, pondremos un ejemplo de cómo funciona el método sanitize_text_field()
Estamos inyectando código sql dentro del mensaje. Lo que hace la función de sanitización es eliminar este código. Si vamos a nuestro frontend y observamos en la consola, veremos que lo elimina.
Ejemplo 2
Ahora vamos a realizar un ejemplo con el método sanitize_email(),el cual podemos utilizar por ejemplo cuando recibimos en un formulario el mail de algún usuario.
Para ello, vamos a nuestro archivo principal de nuestro plugin res-pruebas. phpy escribimos el siguiente código:
Observemos que estamos introduciendo un email con espacios y caracteres que no se pueden admitir en un correo normal, ahora lo pasamos por el método de sanitización y revisamos nuestro frontend.
Vemos cómo me devuelve solo los caracteres admitidos.
El término «nonce» es la abreviación en inglés de «number used once», o número usado una vez. En WordPress los nonces son cadenas de texto que parecen ser cadenas aleatorias, pero en realidad no lo son, pues son generadas a través de funciones hash.
Una función criptográfica hash (usualmente conocida como “hash”) es un algoritmo matemático que transforma cualquier bloque arbitrario de datos en una nueva serie de caracteres con una longitud fija. Independientemente de la longitud de los datos de entrada, el valor hash de salida tendrá siempre la misma longitud.
Si vemos el código de los enlaces o código de los formularios de WordPress, podemos detectar alguna de estas cadenas de seguridad.
Por ejemplo, cuando queremos eliminar una entrada, veremos una url como se muestra en la siguiente imagen:
_wpnonce es el parámetro por defecto que usa WordPress para el nonce en la url.
Por ejemplo, al crear una nueva entrada, aparece el formulario con los diferentes campos para llenar, pero también aparecen campos ocultos. Lo podemos ver con el Inspector de Código, tal como se muestra en la siguiente imagen:
Vemos que el nombre del input es _wpnonce es el nombre por defecto que usa WordPress para el nonce.
Proteger a los usuarios de ellos mismos
Imagínese que un usuario tiene permisos de administrador y está logueado en su WordPress, él no tiene pensado borrar ninguna entrada. Sin embargo, ¿qué sucede si le envío por correo un enlace con la url para eliminar una entrada? Si el usuario pulsa mi enlace, lo estaré forzando a realizar el borrado de alguna entrada.
Este tipo de ataque es parte de los ataques conocidos como CSRF (Cross Site Request Forgery).
Si el usuario ejecuta alguna acción forzada sin tener un nonce válido, WordPress mostrará la siguiente pantalla por defecto y sin opción a nada.
Creando Nonces en el desarrollo de plugins
Por todo lo anteriormente expuesto, cuando desarrollamos plugins, hay que tener presente el uso de nonces. A continuación, veremos algunos escenarios más comunes:
Para agregar un nonce en la url, usamos la función wp_nonce_url(), por ejemplo:
En el código anterior:
• Nuestro nonce se generará a partir del texto «ejemplo-nonce».
• Tendrá como nombre «nonce» (en lugar del nombre por defecto _wpnonce).
En este caso usaremos la función wp_nonce_field(), que creará el campo oculto con el valor del nonce.
En el código anterior:
• Nuestro nonce se generará a partir del texto «ejemplo-nonce».
• tendrá como nombre de campo «nonce» (en lugar del nombre por defecto _wpnonce).
Para usar nonces con ajax, tenemos que crear el nonce y pasarlo al archivo javascript a través de la función wp_localize_script(). Para la creación del nonce usaremos wp_create_nonce().
Comprobando validez de Nonces en el desarrollo de plugins
Para personalizar el mensaje que se muestra cuando hay un error de nonce, puede usar la función wp_verify_nonce(). El código sería similar al siguiente:
Читать дальше