SQL-инъекция в Drupal - PullRequest
       1

SQL-инъекция в Drupal

0 голосов
/ 07 сентября 2010

Это все, чтобы остановить внедрение SQL в Drupal?

db_query('INSERT INTO {tablename} (field1, field2) VALUES ("%s", "%s")', $field1, $field2);

Ответы [ 3 ]

5 голосов
/ 07 сентября 2010

Вы можете использовать параметры , как описано в документации .

Однако вместо этого следует вызвать функцию drupal_write_record .

4 голосов
/ 07 сентября 2010

Является ли ваш вопрос «Это все, что мне нужно сделать, чтобы остановить внедрение SQL в Drupal?»

Ответ: «Почти, но не совсем».

db_query("INSERT INTO {tablename} (field1, field2) VALUES ('%s', '%s')", 
         $field1, $field2);

Одинарные кавычки более стандартны для цитирования значений в SQL.

С другой стороны, если вы определили таблицу имен таблиц с помощью hook_schema, вы можете вместо этого использовать drupal_write_record, как указано в другом ответе. Преимущество drupal_write_record состоит в том, что вам не нужно иметь дело с каким-либо sql, вы просто делаете это:

$tablename = array('field1' => $field1, 'field2' => $field2);
drupal_write_record('tablename', $tablename);
0 голосов
/ 07 сентября 2010

Я настоятельно рекомендую использовать функцию drupal_write_record () вместо инструкций SQL, как указывал SLaks ранее.

...