Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用MDB2防止PHP中的SQL注入_Php_Postgresql_Sql Injection_Mdb2 - Fatal编程技术网

使用MDB2防止PHP中的SQL注入

使用MDB2防止PHP中的SQL注入,php,postgresql,sql-injection,mdb2,Php,Postgresql,Sql Injection,Mdb2,我试图找出如何防止sqlinjection,我编写了这个基本函数:function antiInjectie($inputfromform){ $temp = str_replace("'", "`",$inputfromform); $temp = str_replace("--", "~~",$temp); return htmlentitites($temp); } 然而有人告诉我也要考虑十六进制值,但我该怎么做呢 更新 我坚持使用MDB2,pgsql有一个很好的

我试图找出如何防止sqlinjection,我编写了这个基本函数:function

antiInjectie($inputfromform){
    $temp = str_replace("'", "`",$inputfromform);
    $temp = str_replace("--", "~~",$temp);
    return htmlentitites($temp);
}
然而有人告诉我也要考虑十六进制值,但我该怎么做呢

更新 我坚持使用MDB2,pgsql有一个很好的防止SQL注入的指南


简而言之:不要自己摆弄输入,使用允许绑定参数的数据库API方法。

首先,不要自己编写任何转义函数。它们很可能被破坏,数据库库很可能包含一个合适的数据库。对于mysql,您可以使用


不过,一个更好的长期解决方案不是将完整查询创建为文本,而是使用准备好的查询并在执行期间传递值。对于mysql,请检查mysqli扩展。

您可以对相关问题中提出的PHP本机进行相同的操作。您可以将准备好的语句与或通过手动插入值一起使用。

使用,这是避免使用PHP和PostgreSQL进行SQL注入的最简单的函数。

不幸的是,我坚持使用MDB2:(如果您不打算使用PDO,请查看您正在使用的连接类型的DB函数。它们通常已经包装了转义函数。Bobby tables不是一个“伟大的链接”展示为什么问题是问题的引人入胜的例子?检查。用多种语言解释如何处理问题?检查。邀请提供改进或报告问题?检查。这里看起来很不错。