Mi chiedevo se è possibile che un hacker esegua un attacco di SQL injection usando solo lettere e numeri. Ad esempio, diamo un'occhiata a questo codice PHP che usa espressioni regolari invece delle funzioni PHP incorporate:
<?php
$id = preg_replace('/[^a-zA-Z0-9]/', '', $_GET['id']);
$result = $mysqli->query("SELECT * users WHERE id = '".$id."'");
Nel caso in cui ti chiedi cosa fa il codice, rimuove tutti i caratteri che non sono lettere o numeri ed esegue quella query in MySQL. Mi chiedevo se un hacker potesse essere in grado di sfruttare quel codice in qualche modo e in caso contrario, quale potrebbe essere la differenza tra questo e mysqli::prepare
o mysqli::escape_string
?