У меня есть следующий код, который работает, однако, теперь мне просто интересно, будет ли это безопасно, а не sql для инъекций и т. Д.
Я не могу использовать подход с именами таблиц в белых списках, как для моего веб-приложения, в будущем будет сгенерировано больше таблиц в случайном порядке, и они будут передаваться через параметр URL-адреса table
, поэтому я никогда не буду знать все таблицы .
Я использую первый запрос, чтобы определить, действительно ли существует таблица, которая передается через параметр URL, в противном случае я буду выходить из сценария, который я еще не добавлю.
$db = "database1";
$table = $_GET['table'];
$stmt = $auth_table->runQuery("Select table_name, table_schema from information_schema.tables where table_schema = :db and table_name = :tablename");
$stmt->execute(array(":db"=>$db,":tablename"=>$table));
$tableRow=$stmt->fetch(PDO::FETCH_ASSOC);
$table_schema = $tableRow['table_schema'].".".$tableRow['table_name'];
$stmt = $auth_table->runQuery("Select * from ".$table_schema."");
$stmt->execute();
$testing=$stmt->fetch(PDO::FETCH_ASSOC);
print_r($testing['level']);
exit();