分享 简单安全登录类

回复列表(28|隐藏机器人聊天)
  • @Ta / 2013-05-26 / /
    被禁言
    用户被禁言,发言自动屏蔽。
  • @Ta / 2013-05-26 / /
    <?php
    $db = db::conn();
    var_dump($db->setAttribute(PDO::ATTR_EMULATE_PREPARES,true));
    $rs=$db->prepare('select name from user where uid=?');
    $rs->execute(array('1 or uid=4'));
    var_dump($rs->fetchAll(db::ass));
    $rs=$db->prepare('select name from user where name=?');
    $rs->execute(array('老虎会游泳\' or name=\'阿忍'));
    var_dump($rs->fetchAll(db::ass)); 
    ?>

    结果让我欣慰:
    bool(true) 
    array(1) { [0]=> array(1) { ["name"]=> string(15) "老虎会游泳" } } 
    array(0) { }
        
    第一个查询能出现结果是因为intvar('1 or uid=4')的结果是1。
  • @Ta / 2013-05-26 / /
    pdo被证明是安全的,即使处于模拟预处理状态。
  • @Ta / 2013-05-26 / /
    被禁言
    用户被禁言,发言自动屏蔽。
  • @Ta / 2013-05-26 / /
    被禁言
    用户被禁言,发言自动屏蔽。
  • @Ta / 2013-05-27 / /
    @Cute寂寥,我不太担心,因为我相信pdo_mysql默认就不使用模拟预处理。
  • @Ta / 2013-06-07 / /
    @Cute寂寥,刚刚更新了db类,添加了设置PDO::ATTR_EMULATE_PREPARES为false的功能。
    看了某些人的测试,我不再确信它的默认值是false了。
  • @Ta / 2013-06-08 / /
    被禁言
    用户被禁言,发言自动屏蔽。
添加新回复
回复需要登录