在请求标题和传感器中找到用户名和密码
问题描述:
我收到来自第三方的完整请求标题。我需要隐藏密码和用户名。在请求标题和传感器中找到用户名和密码
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的味道是正确的方法?
答
您可以用单个调用替换他们preg_replace
:
$s = preg_replace('~\bPhp-Auth-(?:Pw|User):\s*\K\S+~', '******', $s);
详细:
-
\b
- 领先的单词边界 -
Php-Auth-
- 一个发光的全部擦除字符序列Php-Auth-
-
(?:Pw|User)
- 无论是Pw
或User
子 -
:
- 冒号 -
\s*
- 0+空格 -
\K
- 匹配复位操作者 -
\S+
- 1或多个非空白字符
*“通过标题发送用户名和密码不安全!”*它是安全,只是不在这个实现。请参阅[BAA](https://en.wikipedia.org/wiki/Basic_access_authentication)和[更多](https://www.httpwatch.com/httpgallery/authentication/) –