Moin!
$valid_tables = "tableA|tableB|tableC"
if (preg_match("#(SELECT|UPDATE|INSERT)\s(INTO|FROM)?".$valid_tables."\s(.+)#im", $query)) {
}
>
> Ein schönes Beispiel, wie man eine SQL-Injection mit einer Regex-Injection versuchen kann zu verhindern...
>
> - Sven Rautenberg
Beispiel bitte.
Abgesehen davon gibt es gegen SQL Injection neben Prepared Statements noch weitere 3k methoden um die zu verhindern, daran sollte es nicht scheitern, die regular expression dient nur dazu um zu erkennen ob der tabellenname im string vorkommt, wenn die query dann über prepared statements oder durch andere checks durchläuft wie zb (Sql injection detection by structure matching über die ANSI SQL Syntax oder Sl injection detection by removing attribute values) sollte es daran nicht scheitern.