안드로이드 개발 질문/답변
(글 수 45,052)
if (로그인정보 == DB회원정보) {
call Intent;
} else {
call Error;
}
로그인 부분을 구현하는데 classes.dex 디컴파일링이 가능하기 때문에,
누구든지 call Intent를 끌면 해킹이 가능하지 않냐 하는 문제였습니다.
지금 구현된 부분은 순서가 이렇습니다.
로그인 시도 -> 웹 서버 확인 및 코드(100) 뿌려줌 -> 맞으면 서버세션, 런타임 쿠키 셋팅 ->
안드로이드에서 코드(100) 확인 -> 맞으면 next intent
로그인 성공 정보를 가져온 뒤 그게 맞으면 다음 intent를 실행해주는데요.
그 intent가 MVC 형태입니다.
웹 뷰 부분이야 어차피 intent를 끌어당겼다 해도 쿠키가 없으니
정보가 표시되지 않아서 문제될건 없지만,
제가 말씀드리고 싶고, 궁금한 점은
next intent 실행 자체를 막아버리는 방법은 없는건지 궁금합니다.
(프로 가드 적용 안했다는 가정입니다.)
## 수정 추가 부분,
로그인을 하면 서버통신으로 xml을 가져 옵니다.
그 xml에 코드가 담겨져 있습니다. ( 100 ~ 103)
100은 성공이고,
101은 로그인 텍스트 실패(?) 이고
102는 로그인 실패이고
103은 서버 통신 실패입니다.
if (code==100) { next Intent } else if (code == 101) { call Message: 실패 } else if (code == 102) { call Message: 실패 } else if (code == 103) { call Message: 통신 실패}
이때, 내부적으로 디컴파일해서 102를 100으로 고친다는 의미 입니다.
프로그램도 사람이 만들고, 해킹도 사람이 하는건대,,
아이폰이든 안드로이드든 윈도우폰이든 마찬가지인대,
문제는 안드로이드 apk 해킹은 디컴파일이 너무 너무 쉬워서.....
난감할 지경..