私はC#正規表現を使用してWeb入力に許可された文字のホワイトリストを実装するいくつかの問題に遭遇しました。私はSQLインジェクションとXSS攻撃を避けようとしています。私は許可された文字のホワイトリストが行く方法であることを読んだ。C#正規表現でホワイトリストを使用して名前(人および企業)を拒否する方法は?
入力は人名と会社名です。
問題のいくつかは、次のとおりです。アンパサンドを持って
会社名。 「ジム&サンズ」のように。アンパサンドは重要ですが、それは危険です。
文字セットを使用して名前を入力する名前のUnicode文字(たとえばアジア系の顧客がいます)。私はこれらすべてをホワイトリストに入れる必要があります。
- 企業名には、「S/A」や「S \ A」などのすべての種類のスラッシュを使用できます。それらは危険ですか?
DBにあるすべてのデータを見た後(新しいユーザーが入力した)ほとんどすべての文字を許可したいと思っています。
これらの(およびその他の)問題を処理する良いホワイトリストの提案はありますか?
注:これはレガシーシステムなので、すべてのコードを制御することはできません。私は最初に不正なデータがシステムに侵入するのを防ぐことによって攻撃の数を減らすことを望んでいました。
[これをEnableClientScript =「偽」 SOスレッド](http://stackoverflow.com/questions/188870/how-to-use-c-to-sanitize-input-on-an-html-page)は類似していると思われます。 –