User Tools

Site Tools


ja:rule:inp:正規表現に用いられる入力データにメタ文字がないことを確認する

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
ja:rule:inp:正規表現に用いられる入力データにメタ文字がないことを確認する [2017/07/04 01:20] – [適合コード例(Detect Meta Character)] yohgakija:rule:inp:正規表現に用いられる入力データにメタ文字がないことを確認する [2017/07/04 01:28] (current) – [例外] yohgaki
Line 75: Line 75:
 } }
  
 +// Length check
 +if (mb_strlen($_POST['pattern'], 'UTF-8') < 1) {
 +  throw new Exception('Validation error: Too short UTF-8 string');
 +}
 +if (mb_strlen($_POST['pattern'], 'UTF-8') > 30) {
 +  throw new Exception('Validation error: Too long UTF-8 string');
 +}
 // $_POST['pattern'] is validated by JavaScript at client side and // $_POST['pattern'] is validated by JavaScript at client side and
 // must not contain other than alphabet chars. // must not contain other than alphabet chars.
Line 112: Line 119:
 } }
 // Allow only following char patterns // Allow only following char patterns
-if (!mb_ereg('\A[0-9A-Za-z\x80-\xFF]+\z', $_POST['pattern'])) {+if (!mb_ereg('\A[\x20-\x7e\x80-\xFF]+\z', $_POST['pattern'])) {
   throw new Exception('Invalid char', $_POST['pattern']);   throw new Exception('Invalid char', $_POST['pattern']);
 } }
Line 129: Line 136:
  
 ログフォーマットが変更された場合に意図せず秘密にすべきログが取得できてしまう可能性がある点にも注意が必要である。 ログフォーマットが変更された場合に意図せず秘密にすべきログが取得できてしまう可能性がある点にも注意が必要である。
 +
 +ユーザー定義正規表現を許可する場合、ReDoSに対してかなり脆弱になる。
  
 ===== 例外 ===== ===== 例外 =====
  
-  * 正規表現を利用するユーザーが権限を持つシステム管理者のみ限定されている場合。+  * 正規表現を利用するユーザーが権限を持つシステム管理者のみ限定されている場合、などそもそも検索対象全てにアクセス権限を持っている時。 
 +  * 検索対象のデータが機密情報でない場合。
  
 ===== リスク評価 ===== ===== リスク評価 =====
ja/rule/inp/正規表現に用いられる入力データにメタ文字がないことを確認する.1499131215.txt.gz · Last modified: 2017/07/04 01:20 by yohgaki

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki