파일 업로드, 다운로드 취약점.Upload 취약점사내 웹 서비스를 운영하다 보면 웹 서버에 File Upload를 이용한 공격이 많이 발생하고 있다. 이러한 공격은 Upload된 악성 script(웹쉘)를 실행하여 실행권한 탈취 및 html 파일을 변조하여 악성 코드 삽입 등의 공격을 하게 된다. ( HTTP Protocol의 Upload URL을 타고 들어온다. )[그림1] 파일 업로드 공격이러한 공격등에 대한 방어를 하기 위해 웹 서버의 설정등의 보완이 필요하다.(요즘은 Apache, Nginx, lighttpd등 다양한 웹 서버들이 존재하므로 각 서버에 맞게 설정을 해두면 좋다.)구체적인 대응방안1.폴더의 권한 설정-해당 Upload폴더의 실행권한을 제거하여 실행 될 수 없도록 한다.2.파일명 변경..
Nodejs multi core cluster 사용하기.Single Thread 기반의 Nodejs지만 cluster를 사용하여 Multi Thread형태의 구조로 동작이 가능하게 할 수 있습니다.바로 node cluster를 이용하면 됩니다. 간단한 예제 코드를 통해 확인 해봅니다.app.js var cluster = require('cluster'); var numCPUs = require('os').cpus().length; var express = require('express'); //Parent Process if( cluster.isMaster ){ var workers = {}; for (var i=0; i < numCPUs; i++) spawn(); function spawn() { wo..
자동완성 구현 ( auto-complete ). 크게 어려울건 없습니다. 요즘 jQuery Plug-in들이 다양해서 왠만한 기능은 다 구현이 가능하기때문입니다. 일단 jquery 랑 autocomplete라는 plug-in이 필요합니다. Download URL : https://github.com/agarzola/jQueryAutocompletePlugin 예제코드 작성 다운받은 script를 추가한 뒤 아래의 예제처럼 따라하면 됩니다. 업체명 담당자 연락처 결과화면 아래의 리스트창이 뜨면서 초성검색이 잘 되는걸 확인 할 수 있습니다. by rocksea.
자동 urldecoding 문제 client에서 urlencoding되어 넘어온 변수가 WAS에 도달시 자동으로 decoding 되어 있는 문제가 있어 추적해보니 nginx 에서 proxy_pass할때 자동으로 decoding을 하게 된다는 것을 알게 되었다. 예를들어 bar%2Fbaz -> /foo/bar/baz로 decoding되어 WAS로 넘어오게 되어 WAS에서 url mapping을 할 수가 없는 상황. 이유를 찾아보니 아주 단순했다. - proxy_pass http://backend/; + proxy_pass http://backend; location / { proxy_pass http://backend; } 뒤에 슬러시가 붙어 있었기 때문이었다. 아래처럼 설정해주면 encoding된 그상태..
redis pub/sub + socket.io를 이용한 chatting server & client 만들기. 일단 초간단 합니다. 예전에 pub/sub model의 mosquitto라는 android용 push서버를 이용하여 개발한 적이 있어 그런지 이해가 빨리 된 것 같습니다. pub/sub model에 관한 구조 이해. 메세지 패턴을 필터링하여 send/receive 하는 방식. (Java Message Service 및 예전에 android push서버 개발할때 mosquitto라는 서버가 pub/sub구조) http://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern 환경설정 pub/sub모델을 쉽게 구현하기 위해 redis를 사용해야 하므로 r..
Coordinating Distributed Applications with ZooKeeper. zookeeper란 분산어플리케이션을 구성하기위해 동일하게 분산처리를 담당하는 서비스 이다. zookeeper가 처음나왔을때 사육사? 왜 사육사일까 라는 생각을 했었다. 생각해보니 Apache재단의 분산처리 오픈소스들이 대 부분 동물 ( Hadoop, hive, pig 등등 )이기때문이어서 그런게 아닌가 했는데 이생각이 맞다고 한다. zookeeper 설계목표는 아래의 그림과 같다. [ 그림 1 ] zookeeper design goals zookeeper는 표준파일시스템과 유사한 형태로 (tree 구조) node가 구성되어있으며 나눠진 계층 namespace를 통해 동등하게 coordination한다. [ ..
ruby version update ( gitlab start syntax error)gitlab 시작시 syntax error를 토해내며 접속이 안되는 현상이 있다. Gemfile syntax error:/home/gitlab/gitlab/Gemfile:14: syntax error, unexpected ':', expecting $endgem "sqlite3", group: :sqlite 여러 자료를 찾아본결과 ruby 버전을 올려보라는 얘기가 많아 그렇게 해보기로 결정했다.일단 현재 루비 버전을 체크해보자. $ sudo -u gitlab -H ruby --versionruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux] 버전이 1.8.7이었다. 1. rub..
EJS는 Embedded JavaScript templates for node 의 약자로 Nodejs에서 사용하는 Template엔진중 하나입니다. EJS의 특징을 살펴보면 이러한 것들이 있습니다. - Complies with the Express view system - Static caching of intermediate JavaScript - Unbuffered code for conditionals etc - Escapes html by default with - Unescaped buffering with - Supports tag customization - Filter support for designer-friendly templates - Includes - Client-side sup..
PKCS#12, 인증서, 개인키 파일 분리하기. APNS적용을 위해 인증서를 설치하던중 PKCS#12 형태의 파일을 받았습니다.PKCS#12란 하나의 파일로 여러 암호 객체를 저장하기위한 보관 파일 형식을 정의합니다. 일반적으로 X.509 인증서, 개인 키를 bundle로 관리하는 방식입니다. [ 출처 :http://en.wikipedia.org/wiki/PKCS_%E2%99%AF12 ] openssl 도구를 이용하여 인증서와 키파일을 분리.개인키 파일 분리# openssl pkcs12 -in pushTestCertificate.p12 -nocerts -out private.pem인증서 파일 분리# openssl pkcs12 -in pushTestCertificate.p12 -clcerts -nokeys..
- Total
- Today
- Yesterday
- AWS
- k8s
- 영문법
- Python Django
- 비지니스 영어
- Business English
- 대명사 구문
- PostgreSQL
- 가정법
- 다낭
- redis
- 베트남
- 도덕경
- 조동사
- it
- 해외여행
- ubuntu
- Python
- maven
- hdfs
- nodejs
- 스페인 여행
- 여행
- NGINX
- hadoop
- JBOSS
- memcached
- 비교구문
- mongoDB
- 영작
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |