2

我想使用以下成语(orm):https ://github.com/j4mie/idiorm 。

它具有以下特点:
建立在 PDO 之上。
在整个过程中使用准备好的语句来防止 SQL 注入攻击。

现在,在https://github.com/j4mie/idiorm/blob/master/idiorm.php我没有看到prepared statament的用法所以我的问题是->如果我使用下面的代码,我使用orm+ pdoprepared statements 是我免受 sql 注入攻击的保护:

require_once 'idiorm.php';
ORM::configure(array(
    'connection_string' => 'mysql:host=localhost;dbname=my_database',
    'username' => 'database_user',
    'password' => 'top_secret'));
ORM::configure('return_result_sets', true);
ORM::configure('driver_options', array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
ORM::configure('error_mode', PDO::ERRMODE_EXCEPTION);

$people = ORM::for_table('person')
                ->where(array(
                    'name' => $_POST["name"],
                    'age' => $_POST["age"]
                ))
            ->find_one();
4

1 回答 1

1

是的,Idiorm 使用准备好的语句,并且应该保护您免受 SQL 注入攻击。

您可以检查_execute执行查询时调用的方法。它使用bindParam方法来附加参数。

于 2017-05-06T13:16:22.953 回答