수달의 IT 세상

[IIS 10] Let’s Encrypt로 https 적용하기 포스트 Teaser

[IIS 10] Let’s Encrypt로 https 적용하기

카테고리:

2 분 소요

HTTPS는 필수인가? 개인적인 용도로 사용하는 서버라면 상관 없지만, 회원가입과 같은 개인정보가 사이트에 들어가는 경우 2012년 8월 18일부터 법이 변경되어 정보통신망 이용촉진 및 정보보호 등에 관한 법률에서 제28조와 제76조가 보안과 과태료에 관련된 내용이며 제15조 제4항 제3호 정보통신망을 통하여 이용자의 개인정보 및 인증정보를 송신·수신하는 경우 보안서버 구축 등의 조치 라고 언급되며 https 연결을 의무화하고 있다. IIS 10에서 Let’s Encrypt로 무료로 https 적용하기 타사의 인증서의 경우, 1년간 3만원이며, *.example.com 형태의 와일드카드 인증서의 경우 15만원을 호가한다. 하지만, Let’s Encrypt를 이용하면 서브 도메인 뿐만

[IIS 10] 헤더 정보 노출 방지하기 포스트 Teaser

[IIS 10] 헤더 정보 노출 방지하기

카테고리:

1 분 소요

헤더 정보 개발자 도구에서도 확인 가능하고, 프록시 툴에서도 쉽게 확인할 수 있는웹 페이지의 헤더 정보는 해커들이 좋아할만한 서버의 정보들을 담고 있다. 위의 사진에서도 볼 수 있듯이 Server 태그와 X-Powered-By태그를 보면, 위 웹사이트는 IIS 10.0 버전과 PHP 7.0.33버전을 사용하여 사이트를 운영중이라는 사실을 알 수 있다. 해커들 입장에서는 위의 정보들을 활용해서 서버에 해당하는 취약점들을 더 확실히 알고 보안을 위협한다. X-Powered-By PHP 제거 X-Powered-By에 표시되는 PHP 정보는 아래와 같이 간단히 제거 할 수 있다. php.ini expose\_php = On → expose\_php = Off Server: Microsof

Apache MINA와 WebSocket으로 통신하기 포스트 Teaser

Apache MINA와 WebSocket으로 통신하기

카테고리:

2 분 소요

Apache MINA의 구조 Apache MINA는 아래와 같은 구조를 띄고 있다. IoService와 IoHandler사이에 IoFliter들을 추가하여 원하는 스타일의 소켓 통신을 할 수 있다. WebSocket같은 경우에도 HandShake과정과 같은 구현을 IoFliter를 추가함으로서 쉽게 해결할 수 있다. 하지만, 기본적인 Protocol들은 자체 Fliter로서 구현이 되어 있지만, WebSocket은 자체적으로 구현이 되어 있지 않다. 또한, https://tools.ietf.org/html/rfc6455에 모든 내용이 기록되어 있다. https://github.com/syudal/Apache-Mina-IoFilter-WebSocket Apache MINA와 연동하기 Apac

[PHP]  cURL을 사용하여 file_get_contents 사용하기 포스트 Teaser

[PHP] cURL을 사용하여 file_get_contents 사용하기

카테고리:

1 분 소요

PHP에서 웹상 파일 읽기 php로 웹상(원격)에 있는 파일을 읽는 방법으로는 보통 아래와 같은 방법을 사용하여 파일을 읽는다. fopen() 함수 사용 file_get_contents() 함수 사용 curl 사용 하지만, 대부분의 웹 호스팅에서는 file_get_contents()을 지원하지 않는다. 물론 curl을 지원하지 않는 웹 호스팅도 있지만, 많은 호스팅에선 아직 지원하므로 curl을 이용하여 php에서 웹 상 파일을 읽어오는 file_get_contents 함수를 curl로 구현했다. 소스 코드 <?php function file_get_contents_curl($url) { $ch = curl_init(); curl_setopt($ch, CURLO

[html] iframe을 사용하지 말아야 할 이유. (단점) 포스트 Teaser

[html] iframe을 사용하지 말아야 할 이유. (단점)

카테고리:

3 분 소요

이유 1. 보안 위험을 유발함 iframe을 사용하여 구성 요소를 구현하면 사이트 간 공격(XSS)에 취약해집니다. 사용자의 개인 데이터를 피싱하여 제출할 수있는 악의적 인 웹 양식을 얻을 수 있습니다. 악의적인 사용자가 플러그인을 실행할 수 있습니다. 악의적인 사용자가 원본 사이트 URL을 변경할 수 있습니다. 악의적인 사용자가 사용자의 클릭을 도용 할 수 있습니다. 악의적인 사용자가 사용자의 키 입력을 가로챌 수 있습니다. 이유 2. 사용성 문제를 일으킴 iframe 태그는 사용성 문제를 자주 일으킵니다. 브라우저의 “뒤로가기”버튼을 간헐적으로 작동되지 않게 합니다. 새로운 브라우저 창에서 갑자기 iframe으로 다른 콘텐츠를 로드하여 사용자를 혼란스럽게 만듭니다.

[PHP] IE 브라우저 접속 검출하기 포스트 Teaser

[PHP] IE 브라우저 접속 검출하기

카테고리:

1 분 소요

IE IE(Internet Explorer)는 윈도우에 기본 탑재되어 편리한 웹 생활을 담당해주었던 인터넷 브라우저의 일종이다. 하지만 윈도우 10이 발표되고 Edge Browser(엣지 브라우저)가 발표됨에 따라 IE의 지원은 끊겼다. 따라서 IE에 탑재된 Trident엔진은 CSS를 정확히 지원을 못하고, 예상치 못한 오류들을 보여주고 있다. 소스 코드 php에서 IE로 접속했는지 검출하려면 ‘$_SERVER[‘HTTP_USER_AGENT’]‘을 사용하면 된다. 아래는 $_SERVER [‘HTTP_USER_AGENT’]를 사용하여 짠 함수다. <?php function getBrowser() { $broswerList = array('MSIE', 'Chrom

[한글] 보기 표 만들기 포스트 Teaser

[한글] 보기 표 만들기

카테고리:

1 분 소요

보기 표 한글로 문서를 만들다 보면 아래와 같은 표를 만들어야 할 때가 있다. 보기 표를 만드는 방법은 생각외로 간단하다. 보기 표 만드는 순서 1. 표를 3*3으로 생성한다. 단축키(ctrl + n → t) 2. 셀들을 선택한 후, ‘셀 테두리/배경’ → ‘각 셀 마다 적용’을 클릭한다. 3. 모두 → 선 없음 → 설정 4. 5번과 8번을 선택하고 셀을 병합하고 ‘'를 적은 후 텍스트를 중앙 정렬한다. 5. ‘'를 적은 셀을 하나만 선택한다. (ctrl+왼클릭), ctrl+방향키를 이용하여 셀 크기를 최대한 줄인다. 6. ‘'의 양쪽에 테두리를 다시 입힌다. 각각 대칭이 되게 진행한다. (ctrl + 클릭)으로 셀을 선택한다. 7. ‘&

Apache MINA를 이용한 Echo서버 구현하기 포스트 Teaser

Apache MINA를 이용한 Echo서버 구현하기

카테고리:

4 분 소요

Apache MINA 자바(Java)를 이용해서 서버를 구축하는 방법에는 여러가지가 있겠지만, 아파치 미나(Apache MINA)의 구현 방법인 Nio Socket과 스레드(Thread)를 이용하여 비동기-스레드(Asynchronous-Thread)방식의 서버를 구현할 수 있다. https://mina.apache.org/downloads-mina_2_1.html 다운로드 가능한 공식 주소는 위와 같다. 위의 주소에서 .zip을 다운받아 apache-mina-버전명-bin.zip을 압축을 풀게 되면 dist폴더에 위와 같은 파일들이 나타는데, 우리가 필요한 내용은 mina-core-버전명.jar이다. 또한, 위의 lib폴더에서 slf4j-api-버전명.jar또한 복사하여 자신이 사용하는 I