node.js 에서 oauth 를 사용한다면 oauth 모듈을  이용하던가,  passport 모듈을 이용해서 만들던가 할겁니다.

대부분의 oauth 로그인용은 twtiter과 Facebook 을 사용하지만 국산 로그인을 사용하면 어떻까 싶어서 찾아보니 me2day 는 outsider님이 구현 해놓으셨고, daum 모듈은 없더군요. outsider님의 글을 보고 한번 만들어 볼까 해서 만들어서 npm 까지 올리게 되었습니다. 


- 아래의 글부터는 oauth 의 로직과 사용법을 알고 있다는 가정하에 적었습니다.


먼저 npmjs.org 에서 간단하게 확인 가능합니다.

https://npmjs.org/package/passport-daum


간단한 예제는 https://github.com/uiandwe/passport-daum-example 에 올려놓았습니다.


git clone  https://github.com/uiandwe/passport-daum-example  로 받으신 다음에 package.json 파일에서의 oath.daum 값에서 DAUM_CONSUMER_KEY , DAUM_CONSUMER_SECRET, callbackURL 를 등록하신 값으로 변경하신 후 server.js 를 실행하시면 됩니다.


 

예제의 구성은 난하님의 블로그를 보시면 편하실 겁니다. 

twitter oauth 10분만에 만들기  http://nodeqa.com/nodejs_ref/82



현재 예제는 사용자 값만 가져오도록 되어 있습니다. 다른 값을 가져오기를 원하시면 passport-daum모듈의 lib/strategy.js 파일의 oauth.get 의 페이지를 변경하시고 사용하거나 따로 함수를 만들어서 사용하시면 됩니다.


- 실행시 ejs, express , passport 모듈이 필요합니다.

- c9.io 및 해외saas 에서 테스트 중 값을 불러오는 과정에서 "권한이 없습니다" 라고 뜬다면 다음 계정의 해외 아이피 접근 막기 부분을 해제하시면 됩니다. 

- 다음의 경우 로그인 아이디가 아닌 nickname 과 계정고유넘버만을 리턴해줍니다. 해당 예제는 nickname을 표기 하도록 하였습니다. 

저작자 표시
신고

WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글이 없습니다.
secret



소스주소 : https://github.com/uiandwe/twitter

구현링크 : http://twitter-uiandwe.dotcloud.com/



twitter 은  트위터 쿼리를 이용하여 공개된 트위터의 언어별로 카운팅 기능을 합니다.


1. 파일 구성

  - app.js : 서버 

  - index.html : 클라이언트


2. 사용 모듈

  - request : 클라이언트 응답

  - JSONStream : JSON 파일 파싱

  - event-stream : JSON 파싱 데이터 파이프 연결 

  - async : 파싱에 대한 페러럴처리

  - socket.io : 클라이언트로의 데이터 수신

  - express : 서버실행 및 관리


3. 코드 설명

  - thread1()함수에 모든것이 처리됩니다.

    JSONStream 파서에 의해서 요청된 쿼리문을 파싱한 다음 언어코드(iso_language_code) 와 

    트윗글(text)를 각각의 배열에 차례로 넣습니다. 

    넣은 데이터는 패러럴이 끝나는 맨 마지막 시점에서 클라이언트로 socket.io로 전송되고 

    클라이언트단(index.html)에서 받은 데이터들을 차례로 보여주며 카운팅합니다.


http://tweetping.net/ 이곳을 처음보고 만들었습니다.

   사실 processing.js 모듈로 지도 표현까지 비슷하게 만들었나... 트윗에 좌표 없는게 대부분인지라.. 포기하고 그냥 글을 표기하는것으로 변경했습니다.


- 한국어과 일어가 많은 이유는 쿼리의 중심이 한국에서 부터 검색하기 때문입니다.

  (한국에서 반경 12500km를 검색합니다.)


- 배포 및 수정은 마음껏 하셔도 됩니다.

저작자 표시
신고

WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글이 없습니다.
secret

몇달전 무한도전 토렌트 파일을 통한 악성코드를 유포한 사건이 있었습니다. 

또한 어제 한글파일을 이용한 악성코드가 유포된적이 있었습니다.


두 사건의 공통점은 파일의 확장자 변조 취약점을 이용한 공격이였습니다.

확장자 변조 취약점은 os에서 제공하는 right to left override를 이용하여 만들어집니다.

기본적인 왼쪽->오른쪽 으로의 글쓰기가 아닌 오른쪽->왼쪽으로의 글쓰기를 통하여

우리의 눈을 속이는 기법입니다. (사회공학해킹의 일종입니다.)



예를 들어 위와 같이 메신저로 파일을 받았다고 합시다. 내부 기밀문서 라는 파일로 확장자가 hwp입니다.


바탕화면에서도 한글파일로 나옵니다. 기밀문서라는데 않열어 볼수가 없겠지요?


해당 파일을 열어 보면 hello 다이얼로그가 뜨고 프로그램은 종료됩니다. 

제가 임의적으로 만든 파일로 만일 악성코드였다면 바로 감염되었을 겁니다.

요즘의 이런 기법으로는 악성파일과 실제 파일을 서버에서 다운로드 하고 실제 파일을 열어주면서 악성파일은 숨기는 패턴을 보이고 있습니다.(아래의 기사 링크 참조)


하지만 받은 사람은 hwp파일이기 때문에 별다른 의심을 않할것입니다.



커맨드 창에서 확인 결과 right to left override를 무시한채 표기되는것을 확인 할수 있습니다. 

윈도우에서 볼때의 2012...exe.hwp ->2012...pwh.exe 로 표기되는것을 확인할수 있습니다.


모든 파일을 커맨드 창에서 확인할수 없는 노릇이지만 아무 파일이나 열어보기전에 확장자를 확인하며

알수없는 사람이 준 파일이나 usb를 열어보는 행동은 삼가해야 합니다. 




관련 글 : http://cleverdj.tistory.com/48

관련기사 : http://www.boannews.com/clinic/s_view.asp?idx=34710&skind=5

               http://krebsonsecurity.com/2011/09/right-to-left-override-aids-email-attacks/

저작자 표시
신고

WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글  3개가 달렸습니다.
  1. 확장자 변조하는 방법을 아래와 같이 해보았습니다.

    테스트PC OS: Win7 Pro
    1. C:\Windows\notepad.exe 파일을 notepadexe.doc 로 이름변경
    2. Alzip으로 압축
    3. notepadexe.doc 파일을 hexeditor로 오픈
    4. exe 앞부분에 3byte E280AE 삽입 후 저장
    5. 7zip 이용하여 압축 해제
    위와 같이 해보니 실패함. 혹시 확장자변조파일 만들때 뭐가 잘못되었는지 좀 알려줄수있으세요
    • 제가 알기론 이 취약점은 윈도우xp 에서만 가능한것으로 알고 있습니다.
      현재 하신 방식으론 어느 정도 맞습니다.(저의 경우는 프로그램으로 만들었지만 방법은 같습니다.)
      저의 경우도 윈7 에서 확인시 변조전의 파일로 나타났었습니다.
      (해당 E280AE 라는 명령문이 win7에 없는것으로 알고 있습니다.)
  2. 윈7에서도 right to left override 취약점을 이용한 바이러스가 나왔네요
secret



java로 wget 프로그램을 만들다 옆길로 세서 만들게 된 프로그램.


개발완료 : 13.01.10

개발기간 : 12시간

사용언어 : java(swing)

개발목적 : 자주 보는 세개의 싸이트를 한꺼번에 모아서 보고싶었음. 

특      징 : 1. 각기 다른 세개의 사이트의 게시판을  파싱하여 보여줌.

               2. 스레드를 통한 게시판별 리스트 갱신 

               3. 해당 글을 클릭하면 브라우져를 열고 사이트로 이동. 해당 글 view.


애로사항: 각기 다른 패널(3개의 패널)을 하나의 프레임에 붙이고 각각의 리스트를 쓰레드로 활성화 시키는점.


 

추가사항 : 1. 사용자 지정 단어에 대한 필터링 : 특정 단어가 있을 경우에만 표시

               2. 로그인 세션 문제 : 특정 게시판의 경우 로그인 필요. 세션값 요구

               3. 커맨드라인으로 크롬을 오픈할 경우 크롬에서는 모든 특수기호가 먹히지 않아 브라우저를 

 IE로 대체.(예외상황 알아볼것)

              


- 제가 재밌거나 사용할 목적으로 만든것들입니다.

- 해당 프로그램은 소스를 오픈하지 않습니다.

저작자 표시
신고

WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글이 없습니다.
secret