我在php中使用PDO,因此無法使用預處理語句轉義表名或列名。下面是自己實現它的一個萬無一失的方法:安全地轉義表名/列名
$tn = str_replace('`', '', $_REQUEST['tn']);
$column = str_replace('`', '', $_REQUEST['column']);
$sql = "SELECT * FROM `tn ` WHERE `column` = 23";
print_r(
$pdo->query($sql)->fetchAll()
);
還是還有一些可以攻擊的途徑嗎?
@Petah不是一個選項 – qwertymk
@Petah我需要能夠使用這個類後,我添加更多的表,而不必不斷更新白名單 – qwertymk
祝你好運:) ... – Petah