2016-11-23 9 views
-1

私は最近、部分的に行われたプロジェクトを引き継いだ。そのプロジェクトでは、データベースからそれぞれのすべてのデータを取得するためにWebサービスを使用しています。どちらが良いですか?アプリケーションにクラスファイルを持つか、Webサービスからデータを取得しますか?

例:私は何が起こっている3つのパラメータ(地区コード、talukコード村コード)

を取り、いくつかのデータが必要である:

  1. これら三つのパラメータ
  2. を使用してXMLドキュメントを作成しますこのXMLを暗号化する
  3. このXMLをWebサービスに送信する
  4. WebサービスでこのXMLを復号する
  5. 上記のパラメータを使用してストアドプロシージャを使用してデータを取得する
  6. 再度、取得したデータのxmlドキュメントを生成します。
  7. このXMLを再度暗号化し、このXMLをアプリケーションに返します。
  8. 返されたXMLを復号化し、このXMLでデータテーブルを生成します。

私は彼にこのようなことをした理由を尋ねました。彼は安全のために言った。

私はこれが非常に長く時間がかかり、ストアドプロシージャを学んだことはアプリケーションを保護していると感じました。 私の質問は、私がクラスファイルを持ち、アプリケーションでストアドプロシージャを使うことができるときに、これらのすべての手順を実行する必要があるのはなぜですか?

私のアプリケーションを保護するのに十分なストアドプロシージャを使用していませんか? 私は彼のテクニックを続けるべきですか?(この方法には正直ではありません)

注:パラメータはユーザーによって渡されません。ユーザーがログインするとセッションに入ります。

答えて

0

クライアントコードがブラウザ側に完全に存在していない限り、あなたの仲間は、あまりにも驚異的なソリューションを作成したようです。実際には、完全なHTML5アプリケーションを開発している場合や、複数のクライアント技術によって同じバックエンドにアクセスする必要がある場合は、Webサービスを通じて完全なHTTPインタフェースを作成します。

セキュリティ層は、要求がWebサービスリソースにヒットする前に、またはレイヤードソフトウェアシステムで定期的に懸念される前に実装することができます()。

暗号化については特に注意する必要があります。 HTTPを使用してWebサービスについて話している場合は、標準のSSL/HTTPSを使用してトランスポートレベルで行うことができるため、要求本体を暗号化する必要はありません。

最後に、XMLについては、SOAPサービスを使用していると思います。たぶんあなたの仲間が長いこと前にプロジェクトを始めたのかもしれません。あるいは、WebサービスとWebサイトを話していて、過去5〜6年でSOAP/XMLサービスを実装していれば、 a 構成上の慣習 RESTのようなアプローチ...

+0

@ Matiasありがとうございました。これはWebアプリケーションであり、完全にコード化されたサーバー側です。ユーザーはアプリケーション内のどこにでも入力することはできません。このアプリケーションは主にドロップダウンとグリッドビューを持っています。だから、ストアドプロシージャのデータ使用量を取得するには十分ですか?または、他のセキュリティ対策をしなければならないのですか? – Rakesh

+0

@Rakeshこれが当てはまる場合、あなたの同僚がソリューションを過剰にエンジニアリングする傾向があるようです。 –

0

このような分離は、dual firewall構成の大規模なセキュアWebアプリケーションでは一般的ではありません。

Webアプリケーションが単にストアドプロシージャを直接呼び出す場合は、Webネットワークゾーンとデータベースネットワークゾーンの間にポート1433(またはその他のODBCポート)を開く必要があります。 WebサーバーはDMZ内にあるので、データベースサーバーはより安全なゾーンになる傾向があります。一般的に言えば、妥協の場合にDMZを維持するためにできるだけ多くのポートを密閉しておくことです。

ほとんどの機能がSQLXMLで覆われているように聞こえるので、同僚が自分の解決策を書いたのは残念です。

関連する問題