小编Joh*_*ith的帖子

在SQLite3中避免SQL注入

我试图找出一种避免SQL注入的简单方法,到目前为止我只能提出两个想法:

  • Base64编码用户输入(不要真的想这样做)
  • 使用正则表达式删除不需要的字符.(目前使用此,不确定它是否100%安全)

这是我目前的代码:

    <?php
        $hash = $_GET['file'];

        if (isset($hash))
        {
            $db = new SQLite3("Files.db");

            if ($db != null)
            {
                $hash = preg_replace('/[^A-Za-z0-9 _.\-+=]/', '_', $hash);

                if ($response = $db->query("SELECT [FILE] FROM '$hash'"))
                {
                    echo $response->fetchArray()[0]; // File name is returned if successful.
                }
            }
        }
    ?>
Run Code Online (Sandbox Code Playgroud)

我的问题是我是以正确的方式进行这种方式还是有更好的方法来做到这一点?

php sqlite sql-injection preg-replace

2
推荐指数
1
解决办法
5421
查看次数

标签 统计

php ×1

preg-replace ×1

sql-injection ×1

sqlite ×1