sanitization – ¿Cuál es la mejor forma de desinfectar los datos?

Pregunta:

He leído varios temas sobre esto y diferentes personas tienen diferentes puntos de vista sobre las mejores prácticas.

En términos de WordPress, ¿cómo escribo datos en la base de datos de la manera más segura?

Este es un inserto que estoy usando ahora:

$result = $wpdb->insert(
    $table_name , 
    array( 
        'arena'         => $galleryData['arena'],
        'year'          => substr( $galleryData['season'], 2 ),
        'copyright'     => $galleryData['copyright'],
        'description'   => $galleryData['description'],
        'path'          => $galleryData['path'],
        'fk_brand_id'   => $galleryData['brand']
    ), 
    array( '%s', '%d', '%s', '%s', '%s', '%d' )
);

Otra forma de insertar datos es hacer esto:

$sanitized_sql = $wpdb->prepare( "
    INSERT INTO my_plugin_table 
    SET 
        field1 = %1$d,
        field2 = %2$s,
        field3 = %3$s’,
        32, 
        'Aaron Brazell',
        'Washington, D.C'
" );
$wpdb->query( $sanitized_sql );

¿Todavía necesito desinfectar los datos usando wp_kses() o mysql_real_escape_string() ?

Estoy confundido sobre qué método es mejor para escribir datos de forma segura en la base de datos. Encontré una respuesta útil en Stack Overflow .

Entonces, ¿debo o no debo desinfectar los datos antes de ingresarlos?

Respuesta:

No, la desinfección ya está hecha. Bueno, mysql_real_escape_string está hecho, se considera una mala forma para filtrar html en la entrada. Personalmente, creo que hacerlo en la salida infringe un poco en DRY. Si lo hizo en WordPress, sospecho que en otro lugar lo volverá a hacer, lo que resultará en una codificación doble de entidades html.

Además, por cierto, wpdb :: insert es básicamente un contenedor para wpdb :: prepare.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım