2017-04-10 6 views
1

제 3 자로부터 완전한 요청 헤더를 받고 있습니다. 암호와 사용자 이름을 숨길 필요가 있습니다.요청 헤더에서 사용자 이름과 비밀번호 찾기

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 이상의 비 공백 문자