728x90
요즘 웹 업계가 난리입니다. 사실상 표준처럼 사용되고 있는 오픈소스 라이브러리인 OpenSSL 에서 취약점이 발견되면서 SSL 터널링과 관계 없이 사용자의 민감한 정보가 노출될 수 있는 문제가 확인되었기 때문입니다. OpenSSL 라이브러리에 대한 패치와 기존에 발급된 인증서 갱신도 중요하지만 Heartbleed 가 왜 이리 큰 이슈가 되는지 아는 것도 중요해 보입니다.

워낙 관련된 문서들이 많이 나왔고 테크 블로그나 IT 전문 매체에서도 잘 다루어 준 덕분에 이해하기 어렵지 않지만 누군가에게 이걸 다시 설명하라고 하면 구차하고 잡다한 이야기를 늘어놓게 되지요. 간단하게 정리된 웹 사이트가 있어서 소개해 드리면서 해당 사이트가 그림으로 이해하기 쉽게 그려둔 그림을 공유해 봅니다. 이해가 아주 깔끔하게 되네요!

출처 : Forumsys (http://www.forumsys.com/api-security/how-to-fix-openssl-heartbleed-security-flaw/)

 
평상시 사용자들이 브라우저로 TLS/SSL (쉽게 말해 HTTPS 요청이라고 생각하시면 됩니다) 터널링을 맺고 나면 OpenSSL 라이브러리는 생성된 세션이 유효함을 확인하기 위해 5바이트의 HELLO 메세지를 전송하는 Heartbeat (심장박동?) 를 전달하게 됩니다. 클라이언트 (보통 브라우저겠죠) 와 서버는 지속적으로 이 행위(?)를 반복하며 채널을 유지합니다.

출처 : Forumsys (http://www.forumsys.com/api-security/how-to-fix-openssl-heartbleed-security-flaw/)


그런데 이번에 발견된 OpenSSL 의 문제점은 Heartbeat 를 5바이트 이상으로 전송하더라도 이에 대해서 서버가 같은 바이트 크기만큼 메모리의 정보를 읽어서 응답하는 데에 있습니다. 악의적인 사용자가 서버의 메모리에 저장된 특정한 주소의 정보들을 쉽게 추출해낼 수 있는 방법이 생긴 것이지요. 이의 해결을 위해서는 OpenSSL 라이브러리를 갱신하고 발급된 인증서를 재발급 받는 등의 절차가 필요합니다. 보다 자세한 내용은 원문을 참고하시기 바랍니다!





728x90
728x90
node.js 의 다양한 라우팅 모듈들 중 가장 사랑받고 있는 모듈이 express 가 아닐까 싶습니다. 사용법이 간단하지만 상당히 훌륭한 기능을 제공하고 있기 때문에 애용하는 분들이 줄어들지 않는 것 같습니다. 새로 간단한 웹 페이지를 구성할 일이 생겨서 간만에 express 를 다시 만지다 보니 버전이 올라가면서 바뀐 부분도 있고 헷갈리는 부분도 있어서 기록삼아 남겨둡니다.

$ npm install express

 
express 를 이용하기 위해서는 우선 node.js 가 설치되어 있어야 하고 npm 을 통해서 express 를 설치해야 합니다. 레파지토리를 통해 express 의 설치가 완료되면 간단한 코드를 이용하여 정적인 메세지를 출력해 봄으로써 설치가 잘 되었는지, 기본적인 사용법이 어떻게 되는지 확인해 볼 수 있습니다

var express = require('express');
var server = express();

server.get('/', function(req, res, next) {

res.send('hello express');

}); 

server.listen(1234, function() {

console.log('Server running at http://127.0.0.1:1234/');

}); 

 
보통 express 를 쓰는 예제들을 보면 app 이라는 약어를 많이 씁니다만 결국 서버니까 습관적으로 server 라고 지정했습니다. server.get 메소드를 이용하여 루트 ('/') 접근에 대해 hello express 라는 응답을 리턴하는 코드입니다. server.get 대신 server.use 를 사용해도 결과는 동일합니다.

$ node test.js
Server running at http://127.0.0.1:1234/ 


node 를 이용하여 저장한 파일을 실행하고 브라우저로 localhsot:1234 를 접근하면 정상적으로 hello express 메세지가 노출됩니다.

 
728x90
728x90
자바스크립트는 참 편리한 스크립트 언어이지만 다른 한편으로는 이해하기 힘든 녀석이기도 합니다. 이유인 즉선 너무 유연하게 사용할 수 있다보니 가끔 일반적인 언어, 컴퓨터 상식으로는 "왜 이렇게 동작하지?" 하는 경우들이 있기 때문입니다. 가장 대표적인 것이 조건 비교문을 이용하여 변수나 객체를 비교할때 입니다. 잘 동작할 것으로 생각했던 구문들이 정상적인 동작을 하지 않거나 예상치 못한 반응을 한다면 혹시 아래 표에 나온 경우중 하나가 아닌지 잘 살펴봐야 합니다. 아래 표는 http://dorey.github.io/JavaScript-Equality-Table/ 에서 업어왔습니다

 
Boolean 값인 True 와 1은 같은 값일까요? 그리고 True 와 "1"은 같은 값일까요? 조금 더 나아가 True 와 [1] 을 비교하면 어떻게 될까요? 두개의 이퀄 연산자(==)를 사용하여 자바스크립트에서 값을 비교하는 경우 위의 표에서 초록색으로 표시된 것처럼 결과가 리턴된다고 합니다. "" 와 0 이 같다는 생각을 해보셨나요? 혹은 "" 와 [[]] 가 같은 값으로 식별된다는 상상을 누가 해봤을까요? 

때문에 자바스크립트에서는 각 객체와 객체를 비교했을 때 값을 정확하게 예측하기 힘들다면 이퀄 연산자를 두개 이어쓰는 대신 세개(===)를 쓰는 것이 좋습니다. 세개의 이퀄 연산자를 사용하는 경우 엄격한 규칙에 의거하여 값을 비교하게 되고 이로 인한 조건 비교문의 오동작을 효과적으로 막을 수 있습니다. 세개의 연산자에 대한 부정형은 !== 이니 참고하시면 될 것 같습니다


훨씬 상식(?)에 가까운 결과를 보실 수 있습니다. 같은 형태의 자료형들간에 비교를 했을때 정확한 값이 나오는 것을 볼 수 있습니다. 자바스크립트를 쓰면서 뭔가 이해할 수 없는 동작이 발생하고 있다면 표를 참고하시고 연산자를 바꿔보는 것을 검토해 보세요. 우리의 시간은 소중하니까요. :-)

 

728x90
728x90
도메인을 등록하기 전에 꼭 해보는 것이 후이즈(WHOIS) 정보 검색입니다
도메인을 등록하게 되면 도메인 성격에 따라 여러가지 후이즈 서버에 정보가 등록되게 됩니다
도메인을 소유한 사람의 정보라던가 도메인의 유효기간 등이
후이즈 서버에 등록된 정보에 노출되게 되는 것이지요.


보통 간편하게 후이즈 도메인 검색을 하려면
한국 인터넷 진흥원(KISA)이 제공하고 있는 WHOIS 정보를 이용하면 편리합니다.
한국 도메인을 검색할 때는 특히 유용하고 글로벌 도메인들도 검색이 잘 됩니다.

하지만 국가별로 할당된 도메인의 경우
한국 인터넷 진흥원이 제공하는 WHOIS 페이지에서 검색이 안될때도 많습니다.
이럴때는 각 국가별 NIC 이 제공하는 WHOIS 서버를 이용해야 합니다
필요할 때마다 구글로 찾아도 되지만 아래와 같이 텔넷 명령으로도 검색이 가능합니다

도메인별 NIC 서버 정보는 요기로 :  http://www.nirsoft.net/whois_servers_list.html

 
텔넷 연결이 잘 되었으면.. (아무 메세지도 안나옵니다!!)
검색하고자 하는 도메인을 입력하면 결과가 출력됩니다

 
유용하게 사용하시기 바랍니다! 

가비아(Gabia)에서 도메인 등록 및 조회, 낙장 도메인 정보를 쉽게 확인하자! [바로가기]

 

728x90

+ Recent posts