2013년 5월 15일 수요일

[쉘스크립트] 파일의 각 라인의 맨앞에 "#" 붙이기

유닉스 쉘프로그래밍을 할때,
때때로 전체 파일의 주석을 달아야할때가 생겼다.. (그냥 내용을 지우는거보다는 주석을 달고싶어서...)

다음과 같이하면 org.sh 안의 모든 줄 앞에 "#" 이 붙은채로 test.sh 로 생성된다.
(cronjob 같은걸 서버 작업 등으로 인해 주석 처리해야할때 나름 용이함..)

#!/usr/bin/ksh

while read line; do
    echo "#$line" >> test.sh
done < org.sh

출처 : 본인작성 

2013년 5월 9일 목요일

이미지 확장자가 내용과 다를 때, 렌더링 불가현상

.png 파일을 .jpg 로 변경후 해당 파일을 그림판으로 오픈하는 경우 정상적으로 표시(렌더링) 해준다.

자 이제 해당 파일을 웹서버 ( IIS7.5 환경에서 테스트됨) 에 올려놓고, client 에서 호출하면!
해당 파일도 정상적으로 호출된다. ;-) ;;;


그런데....
여기서 웹서버에 X-Content-Type-Options nosniff 헤더 옵션을 주게되면.
IE8 에서는 해당 파일이 엑박 표시된다...... (크롬에서는 잘 보임)


이유는.. IE 의 기본 설정인 "파일 확장명이 아닌 파일 내용에 따라서 파일을 엽니다." 가 "사용"이였는데  X-Content-Type-Options nosniff 헤더를 주면 "사용 안함" 과 같은 효과라서
내용과 확장자가 일치할때만 파일을 표시하게되기 때문..(상세 사항 하단 참고)

#### X-Content-Type-Option nosniff ####
IIS 의 보안 권고 설정으로 악의적인 사용자가 exe 등의 파일을 html 확장자로 업로드할때,
브라우저의 "파일 내용에 따라 파일을 여는" 행동으로 인해 exe 파일로 실행될 수 있게되는데. 해당 설정을 확장자와 내용이 동일할때만 실행하도록 하는 HTTP 헤더 옵션.

2013년 5월 3일 금요일

WAS와 IIS 연동시 304가 아닌 200 상태코드만 나올때. ..

Windows 2008 서버에서 ajp 프로토콜을 쓰는 WAS 와 IIS 를 연동하기 위해 "isapi_redirect.dll" 을 구성했다.

해당 시스템에 성능 이슈가 있어서 확인 결과 , eTag 나 Last-modired 헤더가 정상적임에도 계속 200으로 받아와서 네트워크 트래픽을 발생시키고 있었다. (성능에도 악영향)

(기본 설정의 경우 서버측에서 최초 요청시 200상태코드로 데이터를 송신 후,  서버에서 파일이 변경되지 않은 경우 304 Not modired 상태코드를 보내준 후 실제 데이터는 보내지않고 브라우저의 로컬 캐시를 로딩하도록 한다. )

 1. MS 문의 결과 : IIS 문제는 아니고 isapi 필터 문제로 추정
 2. isapi 테스트
    - isapi 를 제거하니 정상적으로 동작
    - isapi dll 을 다른버전으로 구성
      1) 32bit (1.2.37 버전) : 현상 해소 (정상동작
      2) 62bit (1.2.37 버전) : 문제 현상 유지


isapi dll 파일이 64비트에서 상태코드를 200으로 내려주는 듯 하다.
----
버그인지에 대해서는 추가 확인 예정

IIS7 특정 jpg 파일이 엑박표시될 때 ...

IIS 7.5 에서 특정 jpg 파일이 엑박표시되었다.
전부다 그런건 아니고 해당 파일만 .... (멘탈붕괴) ...

 1) 해당 파일을 크롬으로 오픈하니 열린다.
 2) 해당 파일을 png 로 확장자를 바꾸니 열린다.

-----
문제는 보안설정때문에 걸어놓은 "X-Contentx-Type-Options=nosniff" 때문이였다.
해당 설정은 확장자와 본문의 내용이 다를때, 실행하거나 랜더링 하지 않는다.