본문 바로가기

반응형

List

(237)
LeetCode 2413. Smallest Even Multiple 자바 문제 풀이 문제 Smallest Even Multiple - LeetCode 문제 해결 방법 multiple of 2라는 뜻은 숫자가 짝수여야 한다는 뜻이다. multiple of n라는 뜻은 숫자가 n의 배수여야 한다는 뜻이다. 이 문제는 n의 배수중에 가장 작은 짝수를 찾는 문제이다. 처음에는 n을 반복해서 증가시키고, 그중 짝수면 리턴하는 알고리즘을 짰었다. 하지만 그러고 깨달았다. 두번째 n의 배수는 언제나 짝수일수밖에 없다. 그러므로 가장 효율적인 알고리즘은 아래와 같다 n이 짝수인지 확인한다. n이 짝수라면 n을 리턴한다. n이 짝수가 아니라면 다음배수는 언제나 짝수이다. 그러므로 n*2를 리턴한다. Github Link https://github.com/eunhanlee/LeetCode_2413_Sma..
사이버 보안: LDAP 인젝션이란? 정의 LDAP(Lightweight Directory Access Protocol) 인젝션은 사용자로부터 입력된 데이터가 적절하게 검증되거나 정리되지 않은 채로 LDAP 쿼리에 사용될 때 발생하는 보안 취약점입니다. 이는 LDAP 디렉터리에서의 무단 접근이나 데이터 조작을 초래할 수 있습니다. 취약점 발생 지점 리스트 사용자 입력이 되어 인증하는 모든 곳 로그인 아이디, 비밀번호 취약점 검증 방법 사용자 입력 값에 변조된 LDAP 쿼리 삽입 후 실행되는지 확인 USERNAME>(&) LDAP 인젝션 치트시트 LDAP(Lightweight Directory Access Protocol) LDAP은 네트워크 디렉토리 서비스를 구현하기 위한 프로토콜로, 사용자, 그룹, 기기 등과 같은 디렉토리 정보를 저장하고..
LDAP 인젝션 치트시트 기본 검색 LDAP 쿼리 LDAP (Lightweight Directory Access Protocol)는 주로 디렉터리 서비스(예: Active Directory)에서 특정 정보를 검색하는 데 사용됩니다. 다음은 기본적인 검색을 위한 LDAP 쿼리의 예입니다: (&(속성1=값1)(속성2=값2)) &는 여러 조건을 결합하는 논리적 "AND" 연산자입니다. 속성1과 속성2는 디렉터리 내에서 검색하려는 속성의 이름입니다 (예: "cn"은 공통 이름, "mail"은 이메일입니다). 값1과 값2는 해당 속성 내에서 찾고자 하는 값입니다. 특정 요구 사항에 맞게 속성과 값을 사용자 정의할 수 있습니다. 예를 들어, "John Doe"라는 공통 이름과 "john.doe@example.com"이라는 이메일 주소를 가..
LDAP(Lightweight Directory Access Protocol)이란 정의 LDAP (Lightweight Directory Access Protocol)은 인터넷 프로토콜 스택의 일부로서 디렉터리 서비스를 제공하는 프로토콜입니다. LDAP 구조 LDAP는 기본적으로 트리구조를 가지고 있으며, 특징적인 조건을 가지고 데이터를 저장합니다. 각 노드를 엔트리라고 부르며, 각 엔트리에는 분류된 정보가 저장됩니다. 엔트리 이름 테이블 LDAP를 이용한 웹싸이트 구조 목적 LDAP은 데이터의 계층적 구조를 사용하여 사용자, 그룹, 장치 등의 정보를 저장하고 검색하기 위한 방법을 제공합니다. 장점 디렉터리 서비스의 계층적 구조로 데이터를 구성하여 효율적인 데이터 검색이 가능합니다. 인증 및 접근 제어에 대한 기능을 제공하여 보안성을 강화할 수 있습니다. 널리 알려진 표준 프로토콜이며..
사이버 보안: 운영체제 명령 실행이란? 정의 운영체제 명령 실행 취약점은 악의적인 사용자가 운영체제의 명령어를 이용하여 시스템에 악성 코드를 실행시키거나 비정상적인 동작을 유도하는 취약점입니다. 취약점 발생 지점 리스트 모든 페이지 http request를 받았을때, 피라미터값에 따라 운영체제가 명령을 실행하는 경우 취약점 검증 방법 웹 애플리케이션에 전달되는 파라미터 값에 공개적으로 알려진 운영체제 명령 실행 코드 삽입 후 명령어가 실행되는지 확인 Apache Struts 2 RCE(Remote Code Execution) 취약점(공개적으로 알려진 운영체제 명령 실행 코드) 참고사이트: https://cwiki.apache.org/confluence/display/WW/Security+Bulletins 아래코드는 Struts 2 프레임워크의..
사이버 보안: 인증과 인가 취약점이란? 정의 인증 사용자의 신분을 확인하는 절차, 그 사람이 맞는지 확인 하는 작업 인증(Authentication)은 사용자나 시스템이 신원을 확인하는 프로세스를 말합니다. 이는 사용자가 자신이 주장하는 신원을 증명하거나, 시스템이 자원에 접근하려는 주체의 신원을 확인하는 것을 포함합니다. 인증은 사용자가 올바른 자격 증명(예: 사용자 이름과 암호)을 제공하여 자신의 신원을 확인함으로써 이루어집니다. 인증은 로그인 프로세스에서 자주 사용되며, 사용자가 시스템에 액세스할 수 있는 권한을 얻기 위해 필요한 첫 번째 단계입니다. 인가 허락된 사람에게 어떤 권한을 부여하는 작업 인가(Authorization)는 인증된 주체가 특정 자원이나 기능에 대한 액세스 권한을 가지고 있는지 확인하는 프로세스를 말합니다. 인가는..
사이버 보안: 동적분석과 정적분석이란? 정의 프로그램을 분석하는 방법 동적 분석 (Dynamic Analysis) 여러번 실행해가며 확인 동적 분석은 소프트웨어가 실행되는 동안 소프트웨어의 동작을 분석하는 방법입니다. 소프트웨어가 실행되면 동적 분석 도구를 사용하여 프로그램의 동작, 상태, 데이터 흐름 등을 모니터링하고 분석합니다. 장점 실행 중인 소프트웨어의 실제 동작을 분석하므로 실제 환경에서 발생하는 문제를 파악할 수 있습니다. 단점 실행 중인 소프트웨어의 동작을 분석하기 때문에 성능에 영향을 줄 수 있습니다. 실행 환경에 제한됩니다. 정적 분석보다 시간과 리소스가 많이 소요될 수 있습니다. 정적 분석 (Static Analysis) 눈으로 코드 계속 읽기 정적 분석은 소프트웨어가 실행되지 않은 상태에서 소스 코드를 분석하는 방법입니다...
LeetCode 75. Sort Colors 자바 문제 풀이 문제 Sort Colors - LeetCode 문제 해결 방법 정렬을 하는데 함수(메서드)를 쓰지 말라는 조건이 붙었으므로, 정렬알고리즘을 구현할수 있는지 물어보는 문제입니다. input이 0,1,2뿐이므로, 이를 이용한 로직 알고리즘으로 푸는 것이 가능합니다. 알고리즘 모든 엘레멘트를 순회하며, 0,1,2의 개수를 확인합니다 각 개수만큼 0,1,2순서대로 어레이에 넣습니다. Follow up에서 원하는 one-pass algorithm은 네덜란드 국기 알고리즘을 알고 있느냐고 묻는것이며, 이 알고리즘은 0,1를 정렬하는데 특화된 알고리즘 입니다. 또는 퀵정렬을 구현할수도 있습니다. 참고 네덜란드 국기(Dutch National Flag) 알고리즘이란 퀵정렬이란 Github Link https://git..

반응형