본문 바로가기
728x90
반응형

Develop36

[Flutter] Uri를 활용한 SMS 보내기 기능 구현 서론문자 보내기 기능을 구현하면서 android.permission.SEND_SMS 권한에서 reject 이슈가 발생했다.해당 권한은 민감한 권한으로 단순히 사유를 변경하는 것으로 해결이 불가능하여,url_launcher 패키지를 활용하여 launchUrl 함수를 통해 sms Scheme를 호출하는 것으로 해결한다.SEND_SMS 왜 민감한건데?기능 구현에 있어서는 단순히 문자 보내기에 불과한 기능이지만, 심각한 취약점을 유발할 수 있다.예를 들면, 설치한 단말기에서 스팸 문자를 대량으로 발송하는 것이나 스피어 피싱을 수행하는 시나리오를 생각해 볼 수 있었다.Play Store를 통해 설치하는 것이 아닌 직접 설치라고 가정한다면 위 시나리오가 모두 구현 가능하다..!URI 호출은 무엇이길래?1. URI.. 2024. 8. 29.
[SMTP] 수신 메일에서의 hover, onmouse 기능 미지원 이슈 서론메일링 서비스를 개발하던 도중, 태그에 hover 기능으로 background 색상을 변경하려고 했다.local 및 웹 서비스에서는 정상적으로 동작되나, SMTP를 통한 수신 메일에서는 해당 기능이 미동작하여 관련 내용을 정리해본다.기능 PoConmouseover, onmouseout 기능 동작 확인메일링 반영네이버 메일 : 반영 안됨구글 메일 미리보기 : 반영 됨구글 메일 전체보기 : 반영 안됨관련 취약점 Researcher Finds CSS-Only Method to Track Mouse MovementsAs users become more concerned about their privacy and being tracked online, they have begun to use ad block.. 2024. 8. 28.
[Java] params URLEncoder 처리 서론서비스에서 활용하는 Redirect Page를 점검하던 도중 특정 Params에서 데이터를 파싱해오지 못하는 이슈를 발견했다.영문, 숫자, = 포함 문자는 문제가 없었으나 AES 암호화에서 + 특수문자가 포함될 경우 발생하는 원인을 분석하였다.AES256대칭키 암호화 알고리즘256비트 길이의 비밀키를 사용하여 데이터를 블록 단위(128비트)로 암호화고도의 보안성을 제공하며, 고정된 키 길이로 고정된 크기의 블록을 반복적으로 암호화하는 구조로 설계암호화 과정에서 패딩(Padding)과 초기화 벡터(IV)를 사용하여 데이터의 안전성 강화 Advanced Encryption Standard - WikipediaFrom Wikipedia, the free encyclopedia Standard for the.. 2024. 7. 30.
[CI/CD] Spring Boot .jar 서버 배포 스크립트 개선 서론기존 Spring Boot 서버를 배포하는 부분에서 서버 종료, 시작을 일일히 제어해야하는 불편함이 존재하였다.간단한 쉘 스크립트 개발을 통해 서버를 종료하고 시작하는 기능을 탑재하여 수작업에서 오는 휴먼에러를 최소화하고자 한다.기존 배포 정책ps -ef | grep java : 활성화된 프로세스 중 java를 활용하는 Spring Boot 서버의 PID를 찾기 위한 명령어kill or pkill {PID} : 1번에서 확인한 Spring Boot의 PID를 종료하는 명령어서버 종료가 확정되었다고 할 수 없는 명령어프로세스가 종료되지 않은 상태에서 서버 재시작 시서버 재시작 프로세스 : 동일 포트 사용 충돌로 중지기존 서버 프로세스 : kill 명령어를 통해 내부 쓰레드 정리 후 중지결론 : 서버 운.. 2024. 7. 25.
[Spring Boot] IndexOutOfBoundsException 개선 작업 서론Spring Boot 환경에서 특정 API 호출 시 발생하는 IndexOutOfBoundsException 이슈를 정리해본다.class java.lang.IndexOutOfBoundsException -java.lang.IndexOutOfBoundsException:Index 0 out of bounds for length 0해당 이슈는 리스트를 제어하는 로직에서Index [0]에 위치하는 값을 찾을 수 없을 경우 발생할 수 있다. IndexOutOfBoundsException (Java Platform SE 8 )Thrown to indicate that an index of some sort (such as to an array, to a string, or to a vector) is out o.. 2024. 7. 24.
[Java] Mybatis Column '{컬럼명}' in IN/ALL/ANY subquery is ambiguous 해결 서론Mybatis 코드 개선 작업에서 발생한 이슈를 정리해본다.Cause: java.sql.SQLIntegrityConstraintViolationException: Column '{컬럼명}' in IN/ALL/ANY subquery is ambiguous;해당 이슈는 여러 테이블과 서브쿼리, 조인(join)을 사용하는 SQL 문에서동일한 컬럼 이름이 여러 테이블에 존재할 때 발생할 수 있다.문제 발생 SQL 예제아래 SQL은 서브쿼리 안에서 id 컬럼이 모호한 문제가 있다.SQL 엔진은 서브쿼리 내에서 어느 테이블의 id 컬럼을 사용해야 하는지 결정할 수 없다.SELECT a.id, a.name, b.status FROM table1 aLEFT JOIN table2 .. 2024. 7. 19.
728x90
반응형