3

現在、私は PostGIS DB を持っており、基本は機能しています。ただし、を使用してデータベースに直接挿入していますpg_querypg_query_paramsSQL インジェクションを防ぐために使用することをお勧めしましたが、これを実装する方法がわかりません。以下は、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_関数は避けたほうが無難です。あなたの場合、考慮に入れる必要がある2つのことがあります:

  • Drupal API を学びます (Drupal を使用していることを考えると、これはコードの一貫性にとって最適です)

また

通常、PDO に加えてストアド プロシージャを使用しますが、残念ながら、コードが多すぎて管理しきれない場合があります。私のアドバイスは、できるだけ多くのストアド プロシージャを使用することです。

于 2013-07-30T08:58:15.730 に答える