我是php的新手。我刚刚了解了sql注入,并一直在想办法避免它。我能想到的一种方法是:如果我们可以在查询之前散列用户名,密码和其他细节,那么我们可以完全避免sql注入。那么有一个很好的方法吗?我的意思是,我们可以使用哈希函数来阻止sql注入吗?
我熟悉的语言是C和C ++。有没有办法获取字符串中输入的每个字符的十六进制编码,以便在查询之前将其转换为其他类型?
答案 0 :(得分:4)
我刚刚了解了sql注入
您不必为了使其安全而操纵您的数据,您只需在prepare语句中使用正确的方法。
例如,使用PDO,您只需执行
即可$result = $db->prepare($query);
$result->execute($array_data);
你可以在这里看到更多 http://php.net/manual/en/pdo.prepare.php,避免使用自己的功能,这可能会导致意外的严重错误。
答案 1 :(得分:2)
使用PDO prepare来阻止您的数据库进行任何类型的SQL注入。
来自 PDO :: prepare
为将使用不同参数值多次发出的语句调用PDO :: prepare()和PDOStatement :: execute()通过允许驱动程序协商客户端和/或服务器端缓存来优化应用程序的性能查询计划和元信息,通过消除手动引用参数的需要,有助于防止SQL注入攻击。