【问题标题】:Idiorm pdo prepared statement惯用 pdo 准备好的语句
【发布时间】:2017-09-29 18:22:13
【问题描述】:

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

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

现在,在https://github.com/j4mie/idiorm/blob/master/idiorm.php 中,我没有看到prepared statament 的用法,所以我的问题是-> 如果我使用以下代码,我是否使用了orm+pdo 准备好的语句,这样我可以免受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();

【问题讨论】:

    标签: php pdo sql-injection idiorm


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-30
      • 2010-11-30
      • 1970-01-01
      • 2011-07-13
      • 2014-07-20
      • 2010-11-05
      相关资源
      最近更新 更多