2014-04-02 4 views
5

내 안드로이드 응용 프로그램에서 나는 광범위하게 Log.i, Log.e을 사용합니다.Log.i를 생산에 사용하는 것이 안전합니까?

이 명령에서 나는 보통 내 응용 프로그램과 통신하는 SQLite 쿼리 또는 http 나머지 URL을 전달합니다.

제 질문은 : 응용 프로그램이 Play 스토어에 도달하면이 로그를 보관해도됩니까? 사용자가 자신의 컴퓨터에 연결된 장치로 응용 프로그램을 실행하면 LogCat에서 로그 메시지를 볼 수 있습니까?

+0

당신이 그것을 남겨두면 사용자는 그것을 볼 수 있습니다. – Blackbelt

+0

예, 사용자는 logcat – sabadow

+0

흥미로운 질문에이 로그 메시지를 읽을 수 있습니다 ... 둘 다 플레이 스토어에서 안전하며 예, 볼 수 있습니다 –

답변

2

, 그들은 앱이 생성하는 모든 로그 메시지를 볼 수 있습니다.

가능한 해결책은 Proguard을 사용하여 모든 로그 메시지를 (자동으로) 제거하는 것입니다. 이 답변에

상세 정보 : How to configure proguard to ONLY remove android logging calls

그것이 도움이되기를 바랍니다.

+0

Proguard를 확인하지 않았습니까? 나는 그것을 시도 할 것이다. 성공에 나는 대답을 받아 들일 것이다 : – antoniom

2

아니요 생산에 Log 메소드를 보관하는 것은 안전하지 않습니다. 이 로그는 Android에서 다른 콜백을 추적하는 데 사용될 수 있으며 데이터베이스 레코드를 표시하는 경우 앱을 게시하기 전에 해당 레코드를 제거해야합니다.

그리고 프로젝트에서 로그 콜백을 하나씩 제거 할 필요는 없습니다. 프로젝트의 루트에 proguard-project.txt에 몇 줄을 써서 Proguard를 사용하여 Log 메소드를 자동으로 제거 할 수 있습니다. 사용자가 장치를 컴퓨터에 연결하고 로그 캣을 읽으면

Follow this answer to remove logging methods using proguard

+0

왜 안전하지 않습니까? 내 바이트 코드가 다른 사람의 컴퓨터에서 실행중인 경우에는 아무것도 숨길 수 없다고 가정해야합니다. –

2

예, 사용자는 해당 로그 파일을 읽을 수 있습니다. 안전 해요'? 에 따라 다릅니다. 나머지 호출 또는 sqlite 쿼리가 비밀입니까? 예를 들어 wireshark를 사용하면 모든 네트워크 통신을 읽을 수 있습니다.

내 앱을 출시 할 때하는 일 : 메소드 i, d, e 등을 사용하여 자체 로그 클래스를 만들고 Android 클래스 대신이 로그 클래스를 사용합니다. boolean debug = true과 같은 간단한 스위치를 사용할 수 있기 때문에 LogCat에 쓰거나하지 않습니다. 그렇게하면 모든 로그 문을 앱에 남겨 둘 수 있습니다. 당신이 당신의 자신의 로그 클래스를 작성했습니다 , 당신은 단순히 이클립스

import your.package.Log; 

모든

import android.util.Log; 

를 대체 할 수있는, 모든 응용 프로그램에 그것을 사용할 수 있습니다.

+0

당신이 제안하는 것은 그것이 안전하지 않은 경우에 대비하여 내가 생각한 것이다. 그러나 sabadow와 Shajeel Afzal이 제안한 프로 가드 (proguard)는 더 유치 해 보인다. – antoniom

2

로깅은 개발자가 사용하는 매우 편리한 디버깅 및 진단 기술입니다. Android SDK의 일부로 제공된 로깅 클래스를 사용하여 응용 프로그램에 대한 중요한 정보를 LogCat에 기록하지만 로깅 성능에 문제가 있으므로 게시하기 전에 응용 프로그램의 로깅 구현을 검토하십시오.

응용 프로그램을 릴리스하기 전에 기밀 데이터가 누출되지 않도록 로그를 신중하게 검토하십시오.

응용 프로그램이 테스트 모드에있을 때마다 로깅은 매우 중요합니다. 로그는 현재 장치에서 응용 프로그램의 현재 상태 및 시나리오를 제공합니다. 따라서 응용 프로그램을 업데이트 할 때마다 매우 유용합니다.

가끔 Google Play에서 로깅 메커니즘이 규칙을 위반 한 것으로 확인되면 애플리케이션을 거부합니다.

관련 문제