2013-12-17 4 views
-1

현재 IT 보안 엔진으로 개발자와 협력하고 있습니다. PCI 준수의 일환으로 개인 식별 정보가 보호되도록하기 위해 이러한 주소를 로그 파일에 기록하기 전에 클라이언트 전자 메일 주소를 가리는 요구 사항이 있습니다. 누군가이 작업을 수행하는 방법에 대한 도움을받을 수 있습니까? 우리의 개발 환경은 Java 1.6입니다. 어떤 도움을 주셔서 감사 드리며 미리 감사드립니다.Java 1.6에서 전자 메일 주소를 마스크하는 방법

+0

로깅 프레임 워크 란 무엇입니까? Log4j 등? – Kong

+0

예, 우리는 Log4j – user3112342

답변

0

참조하십시오.

PatternLayout을 확장하고 과도한 작업을 수행하기 위해 수퍼 클래스에 위임 한 다음 응답에서 전자 메일을 마스크 처리 할 수 ​​있습니다.

/** 
* Mask email addresses in logging lines. 
*/ 
public class MaskingLayout extends PatternLayout { 
    private static Pattern EMAIL = Pattern.compile("([^[email protected]\\s]+)(\\.[^[email protected]\\s]+)*@([^[email protected]\\s]+\\.)+([^[email protected]\\s]+)"); 

    @Override 
    public String format(LoggingEvent event) { 
     Matcher matcher = EMAIL.matcher(super.format(event)); 
     return matcher.replaceAll("[email protected]"); 
    } 

} 
1

전자 메일 주소 만 기록하려면 사용자의 전자 메일에서 md5를 생성하는 것이 좋습니다. 되돌릴 수 없으며 이메일마다 고유해야합니다.

, 당신은 당신의 자신의 Layout를 작성할 수 당신이 (당신이 당신이 지시 한)는 Log4J를 사용하는 가정 http://download.oracle.com/javase/6/docs/api/java/security/MessageDigest.html

+0

을 사용하고 있습니다. 완전성을 위해 MD5로 사용할 수있는 더 나은 옵션이 있습니다. 그 중 하나는 SHA-512입니다. 비록 그것이 암호 보호를 위해 사용되지는 않지만, 나는 그것이 이미 균열을 보여주고있는 것으로 입증 된 알고리즘에 의존하지 않을 것이다. – skiwi

+0

sha-256 또는 sha-512가 md5보다 강하다. 이것을 지적 해 주셔서 감사합니다. –

+0

이메일 주소와 같은 개인 식별 정보 (PII)가 가면되기를 바라는 것을 제외하고는 다른 정보도 기록합니다. 그들은 디버깅 목적으로 만 이메일 주소를 수집하므로 되돌릴 수 있어야합니다. – user3112342

관련 문제