0

ねえ、ユーザーがユーザー名、パスワード、バイオなどを変更できるようにする Silverlight アプリケーションがあります。この情報は MySQL データベースに保存され、WCF Web サービスを使用して取得されます。

データベースに入る前に、ユーザーから受け取ったすべての情報をサニタイズする必要があります。現時点では、アポストロフィを DB に保存できません。入力 (silverlight または WCF メソッド) をサニタイズするのに最適な場所はどこですか?どうすればよいですか?

ところで、数日でパラメータ化されたクエリを実装するので、SQL インジェクションについては心配していません。

ありがとう

4

1 に答える 1

2

ここでの正解は、アーキテクチャの好みの問題です。このタイプのユーザー入力の検証は、システム ルールです。多くの人は、すべてのルールの実装はサービス側で行うべきだと言うでしょう。懸念事項を厳密に分離するという観点から、システムのサービス側のビジネス ロジックですべてのルールを適用する必要があります。

ただし、この種の検証がクライアントで処理されると、より迅速なフィードバックをユーザーに与えることができ、より使いやすいインターフェイスになります。間違ったキーを押したことをユーザーに知らせるためだけにネットワーク トラフィックを生成しないという追加の利点があります。

結局、どちらのアプローチも間違っていません。「最善の」アプローチは、実際には、システムに何を求めているかによってのみ決定できます。アーキテクチャの純粋性とユーザーの応答性。

パラメータ化されたクエリを使用する権利があります。または、ORM を使用して、SQL インジェクションから保護することもできます。

于 2010-07-22T20:14:13.663 に答える