본문 바로가기

분류 전체보기160

CSRF (Cross Site Request Forgery) 크로스 사이트 요청 위조(CSRF)는 사용자가 현재 인증된 웹 애플리케이션에서 원하지 않는 동작을 수행하도록 유도하는 공격 방식입니다. 공격자는 이메일이나 채팅을 통해 링크를 보내는 등 소셜 엔지니어링 기법을 활용하여 사용자를 속이고, 해당 웹 애플리케이션에서 공격자가 의도한 특정 작업을 실행하도록 할 수 있습니다. 이러한 공격은 브라우저가 자동으로 세션 쿠키나 기타 인증 정보를 요청에 포함시키는 특성을 악용하기 때문에, 타깃이 된 웹 애플리케이션은 사용자의 실제 의도와 공격자가 유도한 요청을 구별하기 어렵게 됩니다. 이러한 공격은 고객 관계 손상, 무단 자금 이체, 비밀번호 변경, 데이터 탈취(세션 쿠키 탈취 포함)와 같은 심각한 결과를 초래할 수 있습니다. CSRF 공격이 성공하면 공격자는 사용자의 .. 2024. 11. 13.
XSS (Cross-Site Scripting) 크로스 사이트 스크립팅(Cross-Site Scripting, XSS)은 웹 보안 취약점 중 하나로, 공격자가 취약한 애플리케이션과 사용자 간의 상호작용을 해치도록 하는 공격 기법입니다. 사용자가 웹사이트에 방문했을 때 해당 웹사이트를 가장하여 악성 코드를 실행하는 방식입니다.공격자는 여러 가지 방법으로 악성 코드를 삽입할 수 있는데, 대표적으로는 URL 끝에 악성 코드를 추가하거나, 사용자가 입력하는 내용을 표시되는 페이지에 악성 스크립트를 직접 게시하는 방식이 있습니다. 이를 통해 공격자는 사용자의 브라우저에서 악성 스크립트를 실행시켜 개인 정보 탈취, 세션 하이재킹, 요청 변조 등의 공격을 감행할 수 있습니다. 피해자가 웹 페이지를 로드하면 악성 코드가 사용자의 쿠키를 복사합니다.이후, 코드가 해커.. 2024. 11. 13.
동일 출처 정책 (Same-Origin Policy) & CORS 동일 출처 정책(Same-Origin Policy)은 중요한 보안 메커니즘으로, 한 출처에서 로드된 문서나 스크립트가 다른 출처의 리소스와 상호작용하는 것을 제한합니다. 이는 동일한 도메인, 프로토콜, 포트 조합을 가진 리소스에만 접근을 허용하는 방식으로 동작합니다. 동일 출처 정책은 잠재적으로 악의적인 문서를 격리하여 공격 경로를 줄이는 데 도움을 줍니다. 예를 들어, 인터넷상의 악성 웹사이트가 브라우저에서 JavaScript를 실행해 타사 웹 메일 서비스의 데이터를 읽는 것을 방지합니다. 하단에 예시를 보겠습니다 :출처(origin)는 URI 스킴, 도메인, 포트 번호로 구성됩니다. 예시 링크는 스킴 : http, 도메인 : normal-website.com, 포트 번호 : 80 으로 설정 했습니다... 2024. 11. 12.
JavaScript에서 == 와 === 차이점 ==와 ===는 비교를 통해 두 값의 동일성을 판단하는 데 사용됩니다. 두 연산자 모두 값이 같으면 true를, 그렇지 않으면 false를 반환합니다. ==와 ===는 동일성을 판단하는 기준이 달라 어느 연산을 사용할지 선택하는 것은 어떤 종류의 비교를 수행하려고 하는지에 달려있습니다. == 는 비교전 type coercion을 수행하기 때문에 느슨한 동등으로 불립니다. 이 말은, 비교하는 두 피연산자의 데이터 타입이 서로 다를 경우, JavaScript 엔진이 자동으로 한 피연산자의 타입을 다른 피연산자의 타입과 동일하게 변환하여 비교를 가능하게 한다는 의미입니다. 하나의 피연산자가 문자열일 경우: 다른 피연산자가 문자열로 변환됩니다.하나의 피연산자가 숫자일 경우: 다른 피연산자가 숫자로 변환됩니다.하.. 2024. 11. 7.
Strict Mode (엄격 모드) Strict mode는 JavaScript에 ECMAScript 5에서 도입된 기능으로, 더 엄격한 규칙을 적용하여 코드를 작성할 수 있게 합니다. 엄격 모드는 더 엄격한 구문 해석과 오류 처리를 적용하여 코드가 더욱 안전하게 실행되도록 합니다.엄격 모드에서는 선언되지 않은 변수 사용이 금지되며, 이 외에도 여러 규칙이 강제됩니다. 일반 JavaScript에서는 쓰기 불가능한 속성에 값을 할당하더라도 오류 메시지를 받지 않습니다.하지만 **엄격 모드(strict mode)**에서는 다음과 같은 경우 오류가 발생합니다:쓰기 불가능한 속성에 값 할당**읽기 전용 속성(getter-only property)**에 값 할당존재하지 않는 속성, 변수, 객체에 값 할당이러한 제한 덕분에 엄격 모드는 잘못된 할당을 .. 2024. 11. 7.
프로토타입 (Prototype) JavaScript에서 함수가 생성될 때 해당 함수에는 자동으로 prototype 속성이 추가되어, 이 함수로부터 생성된 객체들이 메서드와 속성을 공유할 수 있는 구조를 갖습니다. 이 프로토타입 객체는 메서드와 속성을 추가할 수 있는 공간을 제공하여, 해당 함수로 생성된 모든 객체에 상속을 쉽게 적용할 수 있습니다. 함수가 new 키워드로 호출되면, 생성자의 prototype 속성이 새로 생성된 객체의 프로토타입이 됩니다.상단 코드 확인해보면 :Car()라는 생성자 (Constructor) 함수를 정의했습니다.그 다음 프로토타입에 속성 "car.prototype.color = "Red"를 추가하여 속성에 값을 빨간 색으로 정의 했습니다. 이제 Car.prototype.color로 이 속성을 접근 할 수 .. 2024. 11. 6.