2012-02-10 9 views
4

내 프로젝트 포티 스캔을 실행하면 내가보안 정보 또는 스택 추적을 누출하지 않고 오류를 기록하는 방법은 무엇입니까?

LOGGER.error(e.getMessage(),e); 

를 사용하여 예외를 기록하고있어 것을 볼 않는 그것은 attckers이 정보에 대한 액세스 권한을 얻을에서 시스템 정보를 얻을 수 있기 때문에 이것은 올바른 방법이 아니다 말한다 이것과 공격 계획.

보안을 강화하지 않고 가장 좋은 방법은 무엇입니까?

답변

5

대부분의 경우이 논리는 솔직하게 말도 안됩니다. LOGGER 객체는 로컬 파일 시스템에 작성해야하며, 원격 공격자가 파일 시스템에 액세스 할 수있는 경우 방법 큰 문제가 발생합니다.

필요에 따라 로그 파일에 대한 액세스를 제한 한 다음 마음에 기록하십시오.

+0

일반적으로 잘 설계되고 유지 관리되는 시스템에 동의하는 경향이 있습니다. 그러나 당신은 "mysite.com \ logforj.log"와 BAM을 입력 할 수있는 시스템의 수에 놀랄 것입니다. 로그 파일을보십시오. – LaJmOn

+3

웹 루트에 로그인하는 경우 개발자를 해고해야합니다 .-) –

+1

하지만 더 심각하게 "우리 사이트에 소스 코드를 호스트하면 사람들이 우리 소스 코드를 다운로드 할 수 있습니다 !!!"라고 말하는 것과 같습니다. 고쳐? 소스 코드 또는 로그 파일을 사이트에 올려 놓지 마십시오! –

1

프로덕션 환경에서 로그 오프를 전환 할 수 있지만 최종 사용자가 오류를보고하고 어떤 일이 발생했는지 모를 때 큰 단점이 될 수 있습니다.

로그를 중요한 데이터로 취급하고 운영 체제 수준에서 데이터베이스 파일에 액세스하는 것과 같은 액세스를 보호해야합니다. 침입자가 데이터베이스에 액세스하면 어쨌든 시스템을 손상시킵니다. 기껏해야 시스템 관리자 만 로그 파일에 액세스 할 수 있어야하며 필요할 때만 개발자에게 제공해야합니다 (생산 등의 중대한 오류).