2017-04-10 31 views
1

サードパーティから完全なリクエストヘッダーを受け取りました。パスワードとユーザー名を非表示にする必要があります。リクエストヘッダーのユーザー名とパスワードを確認してください。

Php-Auth-Pw:  [email protected] 
Php-Auth-User: testuser 

私はそれがこの

Php-Auth-Pw:  ****** 
Php-Auth-User: ****** 

に見えるようにすることができますどのように私は完全にはまだ正規表現を理解していない、と私はちょうどlookbehindsについて何かを読みました。

私はこれを見つけました。

(?<=\Php-Auth-Pw:\s)(\w+) 
(?<=\Php-Auth-User:\s)(\w+) 

しかし、これをPHPフレーバーで正しく行うにはどうすればよいですか?

+1

* "ヘッダーによるユーザー名とパスワードの送信は安全ではありません!"この実装では安全ではありません。 [BAA](https://en.wikipedia.org/wiki/Basic_access_authentication)および[more](https://www.httpwatch.com/httpgallery/authentication/)を参照してください。 –

答えて

2

あなたはpreg_replaceに単一の呼び出しに置き換えることがあります。

$s = preg_replace('~\bPhp-Auth-(?:Pw|User):\s*\K\S+~', '******', $s); 

regex demo

詳細を参照してください:

  • \b - ワード境界に
  • Php-Auth-をリードします - 点灯ERALチャー配列Php-Auth-
  • (?:Pw|User)からPw又はUserストリングのいずれか
  • : - 結腸
  • \s* - 0+空白
  • \K - マッチリセットオペレータ
  • \S+から1以上の非空白文字
関連する問題