PHP中是否有哈希函数将字符串参数哈希到数字?

时间:2015-11-12 18:34:53

标签: php mysql hash sql-injection

我是php的新手。我刚刚了解了sql注入,并一直在想办法避免它。我能想到的一种方法是:如果我们可以在查询之前散列用户名,密码和其他细节,那么我们可以完全避免sql注入。那么有一个很好的方法吗?我的意思是,我们可以使用哈希函数来阻止sql注入吗?

我熟悉的语言是C和C ++。有没有办法获取字符串中输入的每个字符的十六进制编码,以便在查询之前将其转换为其他类型?

2 个答案:

答案 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注入攻击。