我有一个接受一些不同的$ _GET变量的ical脚本,执行MYSQL SELECT查询,并吐出一个.ical文件。
$ _GET变量是整数或Alpha,有效请求永远不会包含特殊字符。这些值都是预先定义的(由我) - alpha var只是数据库中现有数据的双字母位置代码参数。同样只会对数据执行SELECT查询。我知道PHP有许多消毒方法,但目前我正在使用它。
$foo = preg_replace('[\D]', '', $_GET["foo"]); // only accept numeric chars
$bar = preg_replace('[\W]', '', $_GET["bar"]); // only accept alpha chars
它只是用空格替换任何非数字或非alpha字符,因此(我认为)消除了注入攻击的威胁。
与其他选项相比,这似乎是一种非常简单,低开销的方法,但这种方法是否存在安全风险?