PHP preg_replace是' [\ W]'或者' [\ D]'对$ _get vars进行充分的清理?

时间:2017-06-26 15:41:06

标签: php mysql get icalendar sanitization

我有一个接受一些不同的$ _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字符,因此(我认为)消除了注入攻击的威胁。

与其他选项相比,这似乎是一种非常简单,低开销的方法,但这种方法是否存在安全风险?

0 个答案:

没有答案