문제

메일 기능의 PHP 매뉴얼 페이지에는 "헤더 주입을 방지하기 위해주의를 기울이십시오"라는 사용자 의견이있었습니다.

내 응용 프로그램에서는 메일 함수를 사용하고 기능의 매개 변수로 사용하는 유일한 사용자 입력은 이메일 주소입니다.

Regex를 사용하여 이메일 주소를 예비 확인합니다. ^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$.

이것은 또한 헤더 주입을 방지 할 것인가?

감사,
JRH

도움이 되었습니까?

해결책

누군가는 다음과 같은 것을 주입하고 싶어 할 것입니다.

user_address@domain.com
CC : spam_address1@domain.com, spam_address2@domain.com, spam_address3@domain.com

당신은 허용하지 않습니다 r n 새로운 헤더 정보를 정의하는 데 필요합니다. 따라서 응용 프로그램은 안전합니다.

다른 팁

헤더 주입은 메시지 헤더 내부에 사용자가 공급 한 물건을 넣는 경우에만 위험입니다. 한 가지 팁 예제는 게시 된 전자 메일 주소를 사용하여 회신-헤더를 설정하는 것입니다.

이것이 제가 사용하는 것입니다.

$email = preg_replace(array("/\r/i","/\n/i", "/%0a/i", "/%0d/i", "/Content-Type:/i", "/bcc:/i", "/to:/i", "/cc:/i", "/Content\-Transfer\-Encoding\:/i", "/Mime\-Version\:/i" ), "", $email); 
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top