Каков наилучший способ для дезинфекции данных?

Я прочитал несколько тем об этом, и у разных людей разные взгляды на лучшую практику.

Что касается WordPress, как я могу безопасно записывать данные в базу данных?

Это одна вставка, которую я использую сейчас:

$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' )
);

Другим способом вставки данных является следующее:

$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 );

Должен ли я все еще нуждаться в дезинфекции данных с помощью wp_kses() или mysql_real_escape_string()

Я просто смущен тем, какой метод лучше для безопасной записи данных в базу данных. Я нашел полезный ответ на Переполнение стека .

Так что я должен или не должен дезактивировать данные перед входом?

7 голосов | спросил Steven 29 Jpm1000000pmSat, 29 Jan 2011 14:23:56 +030011 2011, 14:23:56

2 ответа


1

Нет, санитария уже выполнена. Ну, mysql_real_escape_string , считается неправильной формой для фильтрации html на входе. Я лично думаю, что это делать на выходе, вроде бы DRY. Если вы делали это в WordPress, я очень подозреваю, что где-то еще это сделает снова, что приведет к двойному кодированию сущностей html.

Также, кстати, wpdb :: insert - это просто оболочка для wpdb :: prepare.

ответил Backie 29 Jpm1000000pmSat, 29 Jan 2011 14:36:54 +030011 2011, 14:36:54
4

Обратите внимание, что безопасное хранение данных отличается от безопасных данных . Например, код JavaScript может быть абсолютно безвредным в контексте безопасности базы данных, но кошмар в контексте front-end.

Нет единого подхода, поэтому WordPress имеет огромное количество связанных функций .

Вы должны учитывать:

  1. Какие данные.
  2. Где он исходит.
  3. Как это будет использоваться.
ответил Rarst 29 Jpm1000000pmSat, 29 Jan 2011 17:15:52 +030011 2011, 17:15:52

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132