HTTP의 보안상 문제점
HTTP는 암호화하지 않은 방법으로 데이터를 전송하기때문에 서버와 클라이언트가 주고받는 메시지를 감청하는 것이 매우쉽다. 예를들어 로그인을 위해 비빌번호를 전송하거나, 중요한 문서를 열람하는 과정에서 악의적 감청이나 변조가 일어날 수 있다.
HTTP의 보안상 문제점 중 하나는 데이터가 암호화되지 않은 방식으로 전송된다는 것이다. 따라서 서버와 클라이언트 간의 메시지가 쉽게 감청될 수 있다. 예를 들어, 로그인 과정에서 비밀번호가 전송되거나 중요한 문서를 열람하는 도중에 악의적인 공격자에 의해 정보가 도청되거나 변조될 수 있다. 이로 인해 개인정보가 유출되거나, 기업의 중요한 데이터가 손상될 수 있다. 무단으로 메시지를 변경한 후 재전송될 수 있어서 데이터의 무결성이 손상될 가능성이 있다. 이러한 이유로 인해 불특정 다수의 사용자가 사용하는 네트워크 환경에서는 HTTP보다 보안을 강화한 HTTPS를 사용하는 것이 권장된다.
HTTPS는 HTTP에 SSL(Secure Socket Layer) 프로토콜을 사용하여 데이터를 암호화하는 방식으로 통신하고, 전송 중인 데이터를 보호하여 공격자가 데이터를 도청하는 것을 어렵게 만들어 준다. 이를 통해 데이터의 기밀성 및 무결성이 유지되어 보안상 문제점을 해결할 수 있다.
arrow function(화살표함수)과 function(함수)에서 this가 동작하는 방식의 차이
화살표함수는 익명함수로만 사용할 수 있다. 일반함수에서 this는 함수가 어떻게 호출되는지에 따라 this바인딩이 동적으로 결정되는데, 화살표함수는 this가 정적으로 결정된다. 언제나 상위스코프의 this를 가리킨다.
화살표 함수와 일반 함수에서 this가 동작하는 방식의 차이는 주로 바인딩 메커니즘이 다르다는 점이다. 화살표 함수는 함수 표현식을 간결하게 줄여줄 뿐만 아니라, 익명 함수로만 사용되는 특징을 가지고 있다.
일반 함수에서 this 바인딩은 함수가 어떻게 호출되는지에 따라 동적으로 결정된다. 함수가 객체의 메서드로 호출되면, this는 해당 객체를 가리키게 된다. 하지만 함수가 단독으로 호출되거나 콜백 함수로 넘겨지면, 일반적으로 전역 객체(브라우저에서는 window, 노드에서는 global)를 가리키게 된다. 이러한 동적인 this 바인딩은 코드를 복잡하게 만들고 버그를 유발할 수 있다.
반면에 화살표 함수에서 this는 정적으로 결정된다. 화살표 함수 내부의 this는 항상 상위 스코프의 this를 가리키게 되며, 이러한 특성 덕분에 해당 함수가 어떻게 호출되든 동일한 this 값이 유지된다. 이로 인해 화살표 함수에서는 this가 바인딩 되지 않은 부모 컨텍스트를 계속 참조할 수 있으며, 이를 '렉시컬 this(Lexical this)'라고 한다.
이처럼 화살표 함수와 일반 함수에서 this가 동작하는 방식의 차이는 주로 this 바인딩 메커니즘이 다르다는 점에서 기인한다. 코드를 간결하게 작성할 뿐만 아니라, 렉시컬 스코프를 갖는 this를 활용하여 개발자들이 예측 가능한 this의 동작을 구현할 수 있게 되어 버그 발생률을 줄일 수 있다는 핵심적인 장점을 가진다.
'CS | 기술면접대비' 카테고리의 다른 글
#9 프록시 서버의 기능 | 콜백 함수 (0) | 2023.06.27 |
---|---|
#8 네트워크 서버에서 트래픽 과부화가 발생할 경우 대처방법 | meta태그 (0) | 2023.06.26 |
#6 HTTPS | ES5문법과 ES6문법의 차이 (0) | 2023.06.21 |
#5 Base64 | falsy (0) | 2023.06.20 |
#4 프로토콜(Protocol) | 이벤트 위임 (0) | 2023.06.18 |