2011-07-15 8 views
0

私はユーザーのアドレスを収集し、それをYahoo PlaceFinder API(ユーザーのジオロケーションを返す)に送るノードアプリケーションを持っています。(ハッキングを防ぐためにノード...の)物理アドレスをどのようにサニタイズするのですか?

「アドレス」フィールドに必要事項を記入して「送信」をクリックしてください。

多くの異なるアドレスフォーマットのような、許容可能である:

  • 90210(単にZIP)
  • 123偽通り、ビバリーヒルズ、CA 90210
  • 123偽ストリート、90210
  • ..など

ユーザーが有効なアドレスを入力したかどうかは関係ありません。私はRegExがそれに必要なものについて考えることさえしたくない。

私はセキュリティが心配です。

私のNodeアプリケーションで処理する前にユーザーの入力を浄化するために必要な手順(もしあれば)は、YahooPlace finder apiへのhttp.get()要求ですか?

答えて

2

通常の「信頼できないデータを許容可能な値のホワイトリストに対して浄化する」以外のかなり実用的な回答をしてください。あなたは、「ユーザーのアドレスを収集します」と言うとき、あなたはどちらか実際にある:

  1. は、そのようなあなたがかもしれない、それをページにレンダリング
  2. インジェクション攻撃を心配かもしれないデータベースなどの場所にそれを渡しますXSS攻撃

心配あなたは、単に入力を取り、ヤフーにそれを渡している場合は、上記の攻撃ベクトルのいずれかに自分をさらすいないとして、問題はあなたよりも彼らのものです。このような場合には、自由化された住所のように何かに対して必然的に非常に難しいことになります。

1

最も簡単な方法は、入力に正規表現を適用し、英数字のみをカンマとピリオドで入力することです。すべての有効なアドレスを許可するかどうかはわかりませんが、失敗した場合は「A-z0-9 ,.のみを使用する」というエラーメッセージを表示できます。

理論的にはあなたのコードを破壊するための制御文字が必要になる可能性が最も高いため、ほとんどの種類の悪用を軽減します。あなたの状況を考えれば、コンマとピリオドが比較的無害であることは確かです。

関連する問題