XSS 스크립트 공격이란 무엇일까?
·
질문으로 공부하기
XSS(Cross-Site Scripting) 공격XSS 공격은 웹사이트에 악성 스크립트를 삽입하여 사용자의 브라우저에서 실행되게 하는 공격 방식이다. 공격자가 작성한 스크립트를 직접 실행할 수 있게 한다면 쿠키, 세션 토큰 등의 민감한 인증 정보를 모두 탈취할 수 있게 되니 반드시 방어해야 하는 보안 위협중 하나이다. 그럼 XSS 공격을 막을 수 있는 방안에는 어떤 것이 있는지 알아보자. 1. 입력값 검증 및 이스케이핑가장 먼저 떠올릴 수 있는 방법 중 하나는 사용자가 입력한 값은 검증 과정 및 안전한 값으로의 변환 과정을 거친다. 이 과정을 이스케이핑 혹은 새니타이즈라고 한다. React에서는 사실 이 이스케이핑 과정이 내부적으로 진행되어 일반적으로 html 코드가 직접 실행되지는 않으나, dange..
다이나믹 프로그래밍 - Leetcode 139
·
알고리즘 문제로 공부하기
문제Leetcode 139 - Word Break는 주어진 문자열 s가 wordDict에 포함된 단어들로 완전히 분할될 수 있는지 여부를 판단하는 문제다. 단어는 사전에서 여러 번 사용할 수 있으며, 모든 단어를 사용할 필요는 없다.문제 제약 조건1 1 1 s와 wordDict[i]는 소문자 영문자로만 구성된다.wordDict의 모든 문자열은 고유하다.예제 분석예제 1Input: s = "leetcode", wordDict = ["leet","code"]Output: true"leetcode"는 "leet"와 "code"로 분할 가능하다. 두 단어 모두 wordDict에 존재하므로 결과는 true다.예제 2Input: s = "applepenapple", wordDict = ["apple","pen"]O..
Javascript에 호이스팅은 왜 존재하는 것인가?
·
질문으로 공부하기
호이스팅 개념은 면접 질문의 단골 손님인데 생각보다 특이한 질문을 받은 적이 있어서 생각해보게 되었다. 호이스팅은 왜 존재하는 것인가? 먼저 호이스팅의 개념에 대해 복습해보자. 호이스팅호이스팅은 자바스크립트에서 변수와 함수 선언이 스코프의 최상단으로 끌어올려지는 것처럼 동작하는 현상이다. 실제로 코드가 이동하는 것은 아니지만, 자바스크립트 엔진이 코드를 실행하기 전에 컴파일 단계에서 변수와 함수 선언을 메모리에 먼저 저장하기 때문에 발생하는 현상이다. var 변수로 예를 들면 선언, 초기화, 할당 단계에서 선언과 초기화(undefined로) 단계가 먼저 저장되게 된다.console.log(a); // undefinedvar a = 5;console.log(a); // 5 a를 선언하기 이전에도 conso..