我将尝试使用下面的示例代码来保持这个简短而简单。您是否认为这对于任何形式的 SQL 注入都是一个问题......??
$tmpVar = isset($_POST['somePostVar']) ? pg_escape_string(utf8_encode(preg_replace('/[^a-z0-9_]+/i', '', filter_var($_POST['somePostVar'], FILTER_SANITIZE_STRING)))) : 'error';
虽然我知道使用所有四种方法可能会有一些过度杀戮/冗余..我仍然宁愿安全而不是抱歉,因此在这里询问。
这个结果变量将用作
SELECT * FROM table_name WHERE someCol='$tmpVar'
现在我知道周围有类似这样的重复问题,我明白这一点,虽然不是 StackOverFlow 上的主要海报......每日浏览器并使用我......
所以使用 pg_escape_string、utf8_encode、preg_replace 和 filter_var ......这个字符串仅限于带有下划线的字母数字......它是否可以通过 SQL 注入的形式轻松破坏
utf8_encode 也在这里,因为 postgresql 在使用 pg_escape_string 时可能会出现问题。所以在这种情况下它们是齐头并进的。