Sql injection 提高数据库插入的安全性

Sql injection 提高数据库插入的安全性,sql-injection,database,Sql Injection,Database,目前,我有一个PostGIS数据库,我有基本的工作。但是,我使用pg\u query直接插入数据库。有人建议我使用pg_query_params来帮助防止SQL注入,但我不确定如何实现这一点。下面是我当前针对站点位置的insert语句的简化示例。例如,我如何在本例中使用pg_query_params?我知道我必须实现进一步的安全性,但这是一个起点 编辑:我本来打算使用drupal表单API,但它让我头疼。我意识到这会自动完成很多事情 $sql = "INSERT INTO sites_tbl (

目前,我有一个PostGIS数据库,我有基本的工作。但是,我使用
pg\u 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);

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

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

  • 使用
  • 使用一个像or这样的库来处理

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

这更适合stackoverflow,而且此查询容易受到SQL注入的影响。我在那里放了它,然后被告知放在这里。我的问题是:tion确实说我想阻止查询上的sql注入…所以我不能仅仅将插入转换为使用参数?我现在正在研究drupal表单api,我已经添加了pg_query_参数的页面