googleで正式な表現の意味を調べて、あまりにもあまりにも謎めいた文書を見つけました。誰でも正規表現の簡単な説明を提供できますか、正規表現攻撃に対するウェブサイトの典型的な脆弱性は何ですか?Canonical Representationの意味とウェブサイトへの潜在的な脆弱性
5
A
答えて
8
正規化とは、ファイル名や文字列などの入力を受け取り、標準表現に変換するプロセスです。
たとえば、WebアプリケーションでC:\ websites \ mydomain下のファイルにしかアクセスできない場合、通常、ファイル名を参照する入力は、相対パスを使用するのではなく物理的な直接パスになります。 C:\ websites \ mydomain \ example \ example.txtを開きたい場合、その関数への入力はexample \ example.txtです。これがあなたのWebサイトの境界を越える場合はうまくいかないので、標準化機能はアプリケーションディレクトリを見て、その相対パスを物理パスC:\ websites \ mydomain \ example \ example.txtに変更します。これは明らかにファイルパスの先頭で文字列を比較するだけで簡単に確認できます。
HTML入力の場合、%20のような入力を取り、それらをunencodingで標準化するので、これはスペースに変わります。これは、さまざまなエンコーディング方法の数が多いほどよい考えです。標準化とは、すべてのエンコーディングバリエーションをカバーするのではなく、デコードされた文字列のみをチェックするという意味です。
基本的には、論理的に等価な入力を受け取り、標準形式に変換してから操作することができます。
入力フィールドに潜在的にSQLインジェクション攻撃や通常の文字列サニタイズをバイパスするXSSを試してみることができますか? – predhme
衛生上の違いがあります。一般に、SQLインジェクション攻撃はエンコーディングを使用しないため、正規化の問題ではありません。 XSSは、あなたが何をするかによって異なります。あなたがそれを出力する前にすべての入力をエンコードしているなら、それはそうではありません。しかし、あなたはホワイトリストにしようと、または文字列のより悪いブラックリスト特定の部分しているならば、あなたはので、最初の文字列をcanonicaliseなり、例えば、
Canonical(私は思う)は、コンソール入力が「典型的な動作」であることを意味します。非正規(non-canonical)とは、入力が非標準であり、Linux上での "vi"の入力動作などの特別な知識を必要とすることを意味します。
出典
2009-07-22 18:54:43 djangofan
しかし、それはどのようにウェブサイトに適用され、脆弱性がありますか? – predhme
標準の定義についてのblowdartの答えを参照してください –
私の答えは、Blowdartsの回答とは全く違っていませんが、私はそれを1つの文で説明することができます。プログラマーにとって、効率性が重要です。 – djangofan
以下の説明は、「アプリケーションセキュリティと開発STIG」からであるhereが見つかりました:
出典
2011-02-04 18:30:46 CrazyPyro
正規化とは、受信したデータを最も簡単な形式に縮小することを意味し、入力の検証に使用されます。
出典
2014-04-10 18:35:02 germangti