2011-07-28 17 views
1

私はいくつかのデータベーステーブルにRESTインタフェースを提供することに取り組んでいます。 私はクライアントに動的な方法でデータをフェッチする方法を提供したいと思います。例: HTTP経由のデータベースへの自由形式のクエリ

/顧客/ 1234?アクティブ=真&性別= M &富> 100000 & ...

だから、アイデアは、クエリ文字列にできるだけ自由な形を持つことです。 データベースアクセスのために、私はすべてのクエリパラメータを集めてSQL where句に追加し、レスポンスを返します。

ここで重要な問題がある場合は、私がセキュリティに関しておそらく不足している可能性があるかどうかはわかりません。

これは良い考えですか?はいの場合、そのような実装について知っていますか、それを私に指摘できますか?

+0

確かにセキュリティ侵害のような音がする - ほとんどの場合、ユーザーはSQLを変更するURLを改ざんする可能性がありますか?確かにコントローラに提出されているこれらのパラメータを持つ単一のHTMLフォームで十分です。 – Chev

+0

ここでJPAの関連性は何ですか?あなたはそれがタグ付けされているからです。 DataNucleusは裏でDBに接続するRESTインターフェースを提供し、いくつかの照会を可能にします。http://www.datanucleus.org/products/accessplatform_3_0/rest/api.html – DataNucleus

答えて

0

ここで重要な問題があるかどうかわかりませんが、おそらくセキュリティに関しては が不足している可能性があります。

1つの重要な問題は、ffrom SQLインジェクションを防ぐことです。短く読むことhere

0

良いアイデアは、データベースがどのような種類の情報を保持しているかによってまったく異なります。ユーザーアカウント:no/Pizzaパーラー:yes

次のようにあなたは、PHPでそれを行うことができます。

Foreach ($_GET as $key => $value) { 
$clauses[] = $key.' = "'.$value.'"'; 
} 

$query = mysql_query('select * from pizza_parlors where '.explode(' and ',$clauses); 

をしかし、私は任意の注入方法を制限するために、承認された検索パラメータを配列になるだろう。

関連する問題