3

目前,我有一个 PostGIS 数据库,并且我有基础工作。但是,我使用pg_query. 有人建议我使用它pg_query_params来帮助防止 SQL 注入,但我不确定如何实现这一点。以下是我当前insert对站点位置的陈述的简化示例。例如,我将如何使用pg_query_params这个例子?我知道我将不得不实施进一步的安全措施,但这是一个起点。

编辑:我打算使用 drupal 表单 API,但它让我很头疼。我意识到这会自动做很多这样的事情。

$sql = "INSERT INTO sites_tbl (river_id ,sitename ,the_geom) VALUES ('$_POST[river_id]','$_POST[sitename]',st_geomfromtext('POINT($geomstring)',27700))";
$result = pg_query($sql);
4

1 回答 1

5

因为您使用的是字符串而不是参数,所以您的示例容易受到 SQL 注入的影响。最好避免pg_函数。在您的情况下,您需要考虑两件事:

  • 学习 Drupal API(考虑到您正在使用 Drupal,这将是代码一致性的最佳选择

或者

通常,除了 PDO 之外,您还使用存储过程,不幸的是,有时由于代码太多,这无法管理。我的建议是尽可能多地使用存储过程。

于 2013-07-30T08:58:15.730 回答