【问题标题】:PDO Insert with POST带 POST 的 PDO 插入
【发布时间】:2012-03-12 10:34:21
【问题描述】:

我目前有这种类型的 PDO 语句来将变量插入到下面的数组中。有人告诉我,使用 PDO 语句将是在 PHP 中进行插入的最安全方法。

$qry = $db->prepare('INSERT INTO twocents (path, name, message) VALUES (?, ?, ?)');
$qry->execute(array($path, $name, $message));

现在,将 $path$name$message 设置为已发布表单中的 POST 值是否仍然安全?如果这些变量没有被任何东西设置,我不确定你会怎么做 INSERT。

谢谢!

【问题讨论】:

    标签: php html forms pdo


    【解决方案1】:

    是的。它是安全的(仅来自 sql 注入)。

    【讨论】:

      【解决方案2】:

      在某些情况下,它可能会很好。但是,您可能希望在将 $_POST 数据插入准备好的语句之前对其执行某种类型的sanitization。否则,您可能会在数据库中获得一些粗糙的数据。无论如何,准备好的语句确实有帮助。

      【讨论】:

        【解决方案3】:

        是的,这在预防 SQL 注入方面是完全安全的。

        但是,您可能仍需要转义输出数据,例如如果你收到的$message<script language="Javascript" src="http://evil.site.com/evil.script.js"></script>,你可能不想用<p><?=$message?></p> 输出它。一些模板引擎(例如 XSLT)通过单独处理 HTML (XML) 代码和数据来消除这个问题,因此在 <p><xsl:value-of select="message"/></p> 中,message 被视为 <p/> 节点文本值,并在编写时自动转义将 XML 处理成字符串。

        【讨论】:

          猜你喜欢
          • 2016-03-02
          • 1970-01-01
          • 2016-06-21
          • 2017-08-27
          • 2011-09-19
          • 2014-01-25
          • 2010-11-13
          • 1970-01-01
          相关资源
          最近更新 更多