在请求标题和传感器中找到用户名和密码

问题描述:

我收到来自第三方的完整请求标题。我需要隐藏密码和用户名。在请求标题和传感器中找到用户名和密码

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)和[更多](https://www.httpwatch.com/httpgallery/authentication/) –

您可以用单个调用替换他们preg_replace

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

regex demo

详细

  • \b - 领先的单词边界
  • Php-Auth- - 一个发光的全部擦除字符序列Php-Auth-
  • (?:Pw|User) - 无论是PwUser
  • : - 冒号
  • \s* - 0+空格
  • \K - 匹配复位操作者
  • \S+ - 1或多个非空白字符