使用MDB2防止PHP注入PHP

问题描述 投票:3回答:4

我正在试图弄清楚如何防止sql注入,我写了这个基本功能:function

antiInjectie($inputfromform){
    $temp = str_replace("'", "`",$inputfromform);
    $temp = str_replace("--", "~~",$temp);
    return htmlentitites($temp);
}

然而有人告诉我也要考虑十六进制值,但我该怎么做?

更新我坚持使用MDB2和pgsql

php postgresql sql-injection mdb2
4个回答
6
投票

Bobby-Tables有一个很好的指导来防止SQL注入。

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


2
投票

使用MDB2,你可以像在相关问题PDO abstraction中提出的PHP的本地Best way to stop SQL Injection in PHP一样。您可以使用prepare and executequoting准备好的语句并手动插入值。


2
投票

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


1
投票

首先,不要自己编写任何转义功能。它们很可能被破坏,数据库库很可能包含正确的数据库。对于mysql,您可以使用mysql_real_escape_string

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

© www.soinside.com 2019 - 2024. All rights reserved.