Mysql Инъекция через идентификатор

Фанат

oncle terrible
Команда форума
Мне тут с полу-реквестом ломится один сумасшедший.
Какую-то он безумно активную деятельность развил на стаковерфлое, пришлось даже от него один из ответов @SamDark спасать.

Но при этом ошибку запрос все-таки выдает:
PHP:
<?
include 'safemysql.class.php';
$db = new SafeMySQL(['charset' => 'gbk']);
// malicious table name
$table = "\x8c` WHERE 1=0'; --";
// example from documentation
$data = $db->getAll('SELECT 1 as ?n', $table);
var_dump($data);
И вот я никак не могу сообразить - чем мне это грозит и можно ли в принципе трансформировать ошибку в инъекцию
 
Последнее редактирование:

Вурдалак

Продвинутый новичок
Какую ошибку-то? Что таблицы нет? Смотрел в его пример.

Ну, звучит логично, та же проблема, что и с mysql_escape_string().
 
Последнее редактирование:

Absinthe

жожо
Ошибка известная (addslashes vs mysql_real_escape_string), но на практике неосуществимая (но только из-за того, что никто такой кодировкой не пользуется).
Однако может статься, что завтра при появлении utf-69 и требовании к ее применению в базах в PSR-42 SQL-inj появятся уже у всех.
 
Сверху