API(4)
-
🔐 소프트웨어 개발 보안 구축 #9 - API 오용
👍 API 오용이란? API : 프로그래머가 라이브러리가 제공하는 여러 함수를 이용하여 프로그램을 작성할 때, 해당 함수의 내부 구조는 알 필요없이, 단순히 API 명세서에 정의된 값을 입력하면 반환되는 결과를 이용할 수 있도록 만든 매개체 API 오용이란, 소프트웨어 "구현" 단계에서 API를 잘못 사용하거나 보안에 취약한 API를 사용하는 것을 말하며, 이를 방지하기 위한 보안검증항목 역시 같은 이름으로 사용한다. 다음은 API 오용으로 인한 보안약점이다. DNS Lookup에 의존한 보안 결정 ❗️ 도메인명에 의존하여 인증이나 접근통제 등 보안결정을 내린다면, 공격자는 DNS 엔트리를 속여 동일한 도메인에 속한 서버인 것처럼 위장하거나, 사용자와 서버 간 네트워크 트래픽을 유도하여 악성 사이트를 경..
2020.07.14 -
[Non-blocking] JavaScript는 단일쓰레드(하나의 스택)를 사용하면서 논블로킹(비동기실행)이 가능하다.
JavaScript는 개발자가 작성한 코드를 스택에 집어넣고 하나씩 실행하는 "콜스택" 방식으로 실행되는 언어이다. 콜스택은 하나의 함수가 실행을 마치고 스택을 나가야만 다음 함수가 들어와 실행되는 구조다. 그런데 JavaScript는 이 스택이 하나인 단일쓰레드를 따르기 때문에, 어떤 함수가 굉장히 무거운 작업(이미지 처리 또는 API Request 등)을 담고 있다면, 그 작업의 처리가 완료되기 전까지 다른 작업을 하지 못하는 동기적(syncronous)실행 언어라고 생각될 수 있지만, JavaScript에는 Web API와 Queue가 있어서 비동기(asyncronous)실행이 가능하다. *Syncronous : 선생님에게 전화를 거는 상황 - 선생님이 전화를 받기까지 다른 것을 할 수 없고, 전화..
2020.06.01 -
[REST API] 뿌시기 by Node.js & Mongoose
API라는 말을 처음 들은 때가, 아마 어느샌가 N사의 "지도 API"라는 단어가 흥하기 시작한 때였던 것 같다. 그때까지만 해도 API하면 생각나는 것은 그냥 "지도"였고, 그 지도 자체를 의미하는 프로그램인 줄 알았다. 하지만 더 알아갈수록 빙산의 일각이었음을 깨달았다. API란, 어떤 Web의 사용자인 클라이언트와 정보 제공자인 서버가 HTTP라는 약속된 언어로 통신할 때, 그 서버가 제공하는 메뉴판이라고 보면 된다. 레스토랑에서 다양한 음식을 메뉴판으로 제공하는 것과 마찬가지로, 사이트는 서버가 가지고 있는 홈페이지의 모습, 구성요소, 로그인정보 뿐 아니라 서버DB 내 특정 파일 등 다양한 정보를 URL로 제공하는 것이다. 즉 클라이언트는 해당 웹사이트에서 제공되는 페이지 등 정보를 보여달라고 U..
2020.05.14 -
[Javascript] JSON 핵심 정리
JSON이 뭔데? Java Script로 쓰여진 Object 표기법 그게 왜 필요한데? JSON은 서로 다른 컴퓨터 간 효율적인 정보 송수신을 위한 발명품이다. 대개 정보는 인간의 자연어처럼 String이면 좋겠지만, 컴퓨터에 "기록"하는 이상 객체같은 커다란 덩어리이기 마련이다. 이렇게 용량이 큰 상태로 정보를 주고받는다면, request가 많아질 때 과부하를 면치 못할 것이다. 그래서 단순히 그 내용만을 한줄로 요약해서 줄줄이 사탕처럼 압축하는 방법이 생겼으니, 그것이 바로 JSON이다.
2020.05.07