투케이2K

216. (TWOK/WORK) [업무 이슈] 안드로이드 기존 개인 사용 앱에서 공용 배포를 위한 EditText 시크릿 키 정보 암호화 처리 및 클립보드 복사 기능 막기 개발 본문

투케이2K 업무정리

216. (TWOK/WORK) [업무 이슈] 안드로이드 기존 개인 사용 앱에서 공용 배포를 위한 EditText 시크릿 키 정보 암호화 처리 및 클립보드 복사 기능 막기 개발

투케이2K 2026. 5. 25. 13:24
728x90
반응형

[제 목]

주제 : 투케이2K 업무 정리

타이틀 : 투케이 / 2k / 업무 정리

제목 : [업무 이슈] 안드로이드 기존 개인 사용 앱에서 공용 배포를 위한 EditText 시크릿 키 정보 암호화 처리 및 클립보드 복사 기능 막기 개발

 

[내 용]

------------------------------------------------------------------------------
[개발 및 테스트 환경]
------------------------------------------------------------------------------

- 제 목 : [업무 이슈] 안드로이드 기존 개인 사용 앱에서 공용 배포를 위한 EditText 시크릿 키 정보 암호화 처리 및 클립보드 복사 기능 막기 개발


- 테스트 환경 : Android / App / EditText


- 사전) 👉 EditText 간략 설명

  >> EditText 는 안드로이드에서 사용자가 텍스트를 입력하거나 수정할 수 있게 해주는 UI 컴포넌트입니다.

  >> 로그인 화면의 아이디/비밀번호 입력창, 검색창, 채팅 입력창 등이 모두 EditText를 사용합니다.

  >> EditText 는 구조적으로 TextView 를 상속합니다.

    View
    └── TextView
          └── EditText

------------------------------------------------------------------------------





------------------------------------------------------------------------------
[이슈 사항]
------------------------------------------------------------------------------

1. 🟥 개인 기능 테스트를 위해 사용 중이던 AWS IoT Core 연동 앱을 개발사에 테스트 지원을 위해 배포 및 공유를 해야하는 업무 이슈 발생


2. 🟥 현재 사용 중이던 앱에는 Aws IoT Core 연동 IAM 계정 AccessKey , SecretKey 정보가 마스킹 없이 EditText UI 에 그대로 표시되는 상태 확인


3. 🟥 앱 배포 및 공유를 위해 민감한 정보를 표시하는 EditText 마스킹 처리 및 클립보드 기능 막기 기능 구현 필요

------------------------------------------------------------------------------





------------------------------------------------------------------------------
[원인 파악 및 증상 재현]
------------------------------------------------------------------------------

1. ✔️ 특정 앱 실행 후 Aws IoT Core 연동 기능 테스트 화면 진입 수행


2. 🟥 해당 앱 화면에서 Aws IoT Core 연동에 필요한 AccessKey , SecretKey 정보가 평문으로 표시 되는 것 확인

------------------------------------------------------------------------------






------------------------------------------------------------------------------
[조치 내용]
------------------------------------------------------------------------------

1. 🟦 Aws IoT Core 연동에 필요한 AccessKey , SecretKey 정보 등 민감한 정보는 마스킹 처리 및 클립보드 복사 기능 제한 구현


2. 구현 된 안드로이드 소스 코드 예시 : 

-----------------------------------------------------------
🟦 Java 소스 코드
-----------------------------------------------------------

// EditText 컴포넌트 생성
EditText editText = findViewById(R.id.editText);

// 롱 클릭 방지
editText.setLongClickable(false);

// 텍스트 선택 방지
editText.setTextIsSelectable(false);

// 비밀 번호 입력 타입 변경
editText.setInputType(
        InputType.TYPE_CLASS_TEXT |
        InputType.TYPE_TEXT_VARIATION_PASSWORD
);

// 숫자 입력 타입 변경
/*
editText.setInputType(
        InputType.TYPE_CLASS_NUMBER |
        InputType.TYPE_NUMBER_VARIATION_PASSWORD
);
// */

// 포커스 유지
editText.setCustomSelectionActionModeCallback(
        new ActionMode.Callback() {
            @Override
            public boolean onCreateActionMode(ActionMode mode, Menu menu) {
                return false; // 👉 클립보드 창 표시 없애기
            }

            @Override
            public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
                return false;
            }

            @Override
            public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
                return false;
            }

            @Override
            public void onDestroyActionMode(ActionMode mode) {

            }
        }
);



-----------------------------------------------------------
🟦 Xml 소스 코드
-----------------------------------------------------------

<EditText
    android:id="@+id/editPassword"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    
    android:hint="비밀번호 입력"

    android:text=""
    android:textColor="#333"
    android:background="#000"

    android:longClickable="false" // 👉 롱 클릭 막기
    android:textIsSelectable="false" // 👉 텍스트 선택 막기

    android:inputType="textPassword" // 👉 비밀 번호 타입 선택
/>

------------------------------------------------------------------------------





------------------------------------------------------------------------------
[참고 사이트]
------------------------------------------------------------------------------

▶️ [간단 소스] 안드로이드 EditText 클립 보드 기능 막기 방법 - 복사 (Copy) 붙여넣기 (Paste)

https://kkh0977.tistory.com/8847

https://blog.naver.com/kkh0977/224295306547


▶️ [기능 개선] android 안드로이드 EditText 에딧트 텍스트 스크롤 전환 및 클립 보드 복사, 붙여넣기 기능 개발 요청

https://kkh0977.tistory.com/8080

https://blog.naver.com/kkh0977/223906181711?trackingCode=blog_bloghome_searchlist


▶️ [개선 요청] android 안드로이드 화면 전환 시 EditText 설정 값 자동 셋팅 및 클릭 , 터치 이벤트 방지 요청

https://kkh0977.tistory.com/8029

https://blog.naver.com/kkh0977/223881027095?trackingCode=blog_bloghome_searchlist


▶️ [업무 이슈] 안드로이드 EditText 키보드 inputType phone 폰번호 입력 상태에서 클립보드 붙여 넣기 시 숫자 이외 문자열 추가 이슈

https://kkh0977.tistory.com/7682

https://blog.naver.com/kkh0977/223746467782?trackingCode=blog_bloghome_searchlist


▶️ EditText 에딧트 텍스트 스크롤 Xml 및 Source Scroll 스크롤 설정 방법

https://kkh0977.tistory.com/7583

https://blog.naver.com/kkh0977/223721917263?trackingCode=blog_bloghome_searchlist


▶️ [간단 소스] 안드로이드 EditText 에딧트 텍스트 addTextChangedListener 사용해 실시간 텍스트 변경 상태 확인

https://kkh0977.tistory.com/7681

https://blog.naver.com/kkh0977/223746463892?trackingCode=blog_bloghome_searchlist

------------------------------------------------------------------------------
 
728x90
반응형
Comments