0

RESTful Web アプリケーションに取り組んでいます。ここで、読み取り (GET) 要求を拡張して SQL のようなクエリを処理したいと考えていますが、すべての特殊文字 (" "、"/"、"<"、">"、 「{」、「}」など)。GET リクエストでメッセージ本文を使用することはお勧めできません。したがって、現時点で私が目にする唯一のオプションは、POST リクエストを使用することです。しかし、読み取り操作に POST を使用するため、これも良い解決策ではないと思います。REST の原則によれば、読み取りは GET 要求によって行う必要があり、POST はデータの操作にのみ使用する必要があります。

どう思いますか?SQL のようなクエリを Web アプリケーションに送信する最良の方法は何ですか?

どうもありがとう

4

2 に答える 2

2

CGI::escape("select * from NEVER_DO_SUCH_THINGS where SQL_INJECTION > 'unsafe'") を使用します

于 2010-12-07T11:20:19.933 に答える
0

クエリ操作を URI に詰め込む方法の 1 つの例については、 OData URI 規則を参照してください。

ただし、POST の使用を過度に制限しています。HTTP メソッドの考え方は、リクエストの特性が GET、PUT、および DELETE の特性に適合する場合、それらを使用する必要があるというものです。特性が一致しない場合は、それらを使用してはなりません。ただし、POST は任意の要求に使用できるワイルドカード メソッドです。

POST が何らかの方法でデータを書き込み、更新、または操作しなければならないという要件はありません。POST メソッドを使用する必要があることをクライアントに伝えることで、サーバーの動作についてクライアントに何の約束もしていません。

クエリに使用するデータのチャンクを送信するために POST を使用しても問題はありません。欠点は、POST の応答がキャッシュされないため、それを利用できないことです。

多数のハイブリッド アプローチがあります。そのうちの 1 つは、クエリ パラメーターを POST し、サーバーにクエリを表す新しい一時リソースを作成させてから、クライアントが一時クエリ リソースを取得できるようにリダイレクトを返すことです。

于 2010-12-07T13:51:02.547 に答える