繁体   English   中英

PHP-db2 / odbc中的SQL Prepared语句(防止注入)

[英]PHP - SQL Prepared statement in db2/odbc (prevent injection)

根据我在MySQL方面的经验,我从未使用过准备好的语句(我主要是前端用户,并且只进行测试查询)。

具体来说,我现在拥有一个使用表单的站点,该表单使用odbc连接来更新DB2数据库。 我是这个世界的新手,但我意识到我在下面的查询容易受到注入的攻击。

我将如何更改它以创建准备好的语句?

  $connectionstring = odbc_connect(A4_ODBCLINK, A4_ODBCUSER, A4_ODBCPW);

  if (!$connectionstring) {
  die('Could Not Connect:');

  }

  $sql = " UPDATE " . A4F_CUSTMSTFC . "
        SET XBLZIC ='" .$_POST['zip'] . "'
        WHERE XCSTNO ='" .$_POST['uname']. "'";

  $queryexe = odbc_exec($connectionstring, $sql);

您应该能够执行以下操作:

$sql = " UPDATE " . A4F_CUSTMSTFC . "
    SET XBLZIC = ?
    WHERE XCSTNO = ?";
$stmt = odbc_prepare($connectionstring, $sql);
$success = odbc_execute($stmt, array($_POST['zip'], $_POST['uname']));

有关更多信息,请参见http://php.net/manual/en/function.odbc-prepare.php,但基本上只是将? 代替您以后要绑定的变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM