728x90

SSL절에 아래의 항목추가
PassPhraseDialog="file:[패스워드 쉘 파일 절대경로]"

패스워드 쉘 파일 생성 방법

# su - webtob
# ${WEBTOB_HOME}/ssl
# wsmkppd -p [패스워드] [패스워드 쉘 파일명] [webtob에 설정한 SSLNAME]

ex) wsmkppd -p tmax pass.sh ssl1

728x90
728x90

■현상
http응답코드 405는 메소드매칭이 되지 않아 발생하는 에러이다.

■원인
사용자는 페이지에 대한 http요청을 get으로 하였는데
페이지에선 post방식으로 처리하게 되었을때 발생하게 된다.

■조치방법
처리방식과 요청을 맞추어주면 됨

728x90
728x90

■ 개요
http 헤더 내에 OS, 웹서버 정보를 담고 있는 값

■ 현상
# curl -I http://localhost
명령 시 헤더 정보에 OS와 웹서버 정보 출력

■ 조치사항
Node 절에 다음과 같이 설정
ServerTokens="OFF"  (default 값 off)

728x90
728x90

webtob의 동작을 분석하기 위해 trace를 해야 할때가 있다.

다음의 2가지 방법으로 가능하다.

1. 로그레벨을 trace로 변경
$ wsadmin
> ll .hth -l trace

2. 로그 설정을 변경
$ wsadmin
> ll .hth -o dcR,dcW,dsR,dsW

dcR - client가 보낸 데이터 출력
dcW - client로 전송된 데이터 출력
dsR - server가 보낸 데이터 출력
dsW - server로 전송된 데이터 출력

위와 같이 입력하면 아래의 파일로 trace가 생성
${WEBTOBDIR}\log\HTH-[PID]-[YYMMDD].trace

1번으로 살펴보고 분석에 대한 정보가 부족할시 2번으로 분석

webtob재기동시 설정된 trace는 모두 해제

원복
ll .hth -o -dcR,dcW
ll .hth -o -dsR,dsW
ll .hth -l INFO


728x90
728x90

출처: https://ifuwanna.tistory.com/223

크롬(Google Chrome)80버전부터 새로운 쿠키 정책이 적용 되어 Cookie의  SameSite 속성의 기본값이 "None"에서 "Lax"로 변경

■ 그로 인한 어떠한 영향도가 있는가??
SameSite 를 None 으로 설정할 경우 모든 도메인에서 쿠키를 전송하고 사용할 수 있지만  사용자가 사이트 간 요청 위조(CSRF - Cross-site request forgery) 및 의도하지 않은 정보 유출에 취약해질 가능성이 있음.
이러한 취약점을 방지하기 위해 지금까지는 별도의 SameSite 속성 명시 없이 쿠키를 생성했을 때 "SameSite=None" 으로 설정한 것과 동일하게 동작 했지만 Chrome80 버전 이후에는 SameSite 속성 설정이 없는 쿠키는 "SameSite=Lax" 로 명시한 것과 동일하게 동작
즉 iframe, ajax를 이용하여 다른 도메인으로부터 받은 쿠키를 저장하지 않게 됨

■ SameSite 란?
Cookie의 SameSite 속성은 서로 다른 도메인간의 쿠키 전송에 대한 보안을 설정.

"None"은 동일 사이트과 크로스 사이트에 모두 쿠키 전송이 가능. 그리고 "Strict"로 설정할 경우 서로 다른 도메인에서는 아예 전송이 불가능해 지기 때문에 CSRF를 100% 방지할 수 있으나 사용자 편의성을 많이 해치게 됩니다. 그래서 Strict 설정에 일부  예외( HTTP get method / a href / link href )를 두어 적용되는 설정이 이번에 기본값으로 변경되는 "Lax

■ 크롬이 SameSite 정책을 변경한 이유
브라우저에서 기본 설정을 변경한 것은 크로스 도메인간 중요한 정보 유지는 CSRF 가능성이 있는 쿠키가 아닌 다른 안전한 방식으로 하기를 권장하기 때문.
제안하는 대로 Lax 설정에서도 문제 없게끔 쿠키에 대한 의존성을 낮추는 것이 권장 되지만 바로 수정개발이 힘든 경우는 쿠키의 SameSite설정을 기존의 기본값이었던 None으로 설정하여 임시로 해결 할 수 있음.

■ 해결방안
1. WEBTOB patch
WebtoB-4.1.9.1-B308.50.18 로 패치

2. JEUS patch
버전별 패치파일 상이
JEUS6 : jext_v6008_i215676_a1340679.jar
JEUS7: jext_v7004_i214319_a1333430.jar
JEUS8: jext_v8000_i215340_a1339733.jar

3. JEUS설정 변경
버전별 설정파일 상이
JEUS6
- JEUSMain.xml 의 다음과 같은 내용 추가
<node><engine-container><command-option>-Djeus.servlet.response.cookie.sameSite=None
- WEBMain.xml 의 다음과 같은 내용 추가
<web-container><session-config><seasion-cookie><secure>true

JEUS7,8
Servers 메뉴 - MS선택 - Basic탭 - Basic Info 탭 이동
[Lock&Edit] 버튼 클릭 - Jvm Option 수정(-Djeus.servlet.response.cookie.sameSite=None) - 우측 상단 파란색 확인 버튼 클릭 - [Activate Changes] 버튼 클릭

Servers 메뉴 - MS선택 - Engine탭 - Web Engine 탭 - Session Config 탭 이동
[Lock&Edit] 버튼 클릭 - Secure 옵션 체크 - 우측 상단 파란색 확인 버튼 클릭 - [Activate Changes] 버튼 클릭


728x90

'IT > MiddleWare(WEB WAS)' 카테고리의 다른 글

[SEVLET] REQUEST 정보 파악  (0) 2020.12.29
[JEUS]JEUS 7,8 WEBADMIN IP 접속 제한  (0) 2020.12.29
[JAVA]java agent??  (0) 2020.12.22
[JAVA] BCI (Byte Code Instrumentation) ??  (0) 2020.12.22
[WEBTOB]Compression 설정  (0) 2020.12.17
728x90

클라이언트가 웹서버를 통해 큰 용량의 파일을 다운로드 할 때, 네트워크의 높은 사용률로 인해 부담이 될 수 있음.

웹서버에서 다운로드 할 파일을 압축하여 보냄으로써 네트워크의 부하를 줄여줄 수 있으며, 사용자의 응답시간을 줄일 수 있음.

※ 압축을 함으로써 웹서버의 자원사용률(CPU)는 가중됨.

 

■ 설정

 WEBTOB의 설정파일(http.m)에 다음과 같이 설정

  *SERVER

    Compress = [압축할 mime-type , 응답헤더의 Content-Type]

   EX) html  SVGNAME=htmlg, Minporc=10, Maxproc=10, Compress = "text/javascript"

※ WEBTOB 4.1.9.1 부터 사용 가능

 

로깅 설정에서 아래의 Format 설정 시 압축률 확인 가능

Format = "%z",

 

 

 

728x90
728x90

1. HSTS (HTTP Strict Transport Security) 란?
일반적으로 HTTPS를 강제하게 될 때 서버측에서 302 Redirect 를 이용하여 전환(웹서버 설정을 통해)시켜 줄 수 있음. 하지만 이것이 취약점 포인트로 작용될 수 있다.

이러한 이유로 클라이언트 (브라우저) 에게 HTTPS를 강제 하도록 하는 것이 권장되는데, 이것이 HSTS (HTTP Strict Transport Security) 다. 클라이언트 (브라우저)에서 강제 하기 때문에 Plain Text (HTTP) 를 이용한 연결 자체가 최초부터 시도되지 않으며 클라이언트 측에서 차단된다는 장점이 있음. 

 

사용자가 최초로 사이트에 접속시도를 하게 되면 웹서버는 HSTS 설정에 대한 정보를 브라우저에게 응답하게 됨. 브라우저는 이 응답을 근거로 일정시간 (max-age) 동안 HSTS 응답을 받은 웹사이트에 대해서 https 접속을 강제화 함. (Response Header에 Strict-Transport-Security 값으로 존재)

 

 

크롬에서는 다음과 같은 명령어로 브라우저에 들어있는 HSTS값이 확인 가능

chrome://net-internals/#hsts

 

아래의 사이트에서 HSTS가 적용된 사이트인지 확인 가능

https://hstspreload.org

 

1.1. HSTS의 오점 

HSTS를 웹서버에서 리스폰스 헤더로 제공하는건 최초의 HTTP로 연결시에 HSTS 헤더가 내려오기전에 SSL 스트립이 가능한 문제가 여전히 존재. 따라서 웹페이지에 들어가지 않고도 브라우저 내장 preload를 갖추는게 가장 안전한데, 크롬 측에 조건 갖추고 제출하면 크롬 preload 리스트에 들어갈 수 있음. 크롬 리스트는 다른 브라우저도 공유함. // END

2. HSTS (HTTP Strict Transport Security) 의 설정방법
WEBTOB 설정파일(http.m)에서 다음과 같은 설정 추가
*HEADERS
HSTS ACTION="AddResponse",
FIELDNAME="Strict-Transport-Security",
FIELDVALUE="max-age=[시간ms]"
*VHOST
HEADERS="HSTS",

 

3. HSTS (HTTP Strict Transport Security) 를 이용한 SSL Strip 방어

MITM (Man in the Middle) 공격을 보안하기 위함. 일반적으로 TLS/SSL로 암호화 된 세션은 중간에서 공격자가 그 내용을 감청하더라도 암호화 되어 있기 때문에 데이터가 보호 될 수 있습니다. 따라서 MITM은 SSL Strip (SSL/TLS 로 암호화 된 세션을 강제로 암호화 하지 않은 HTTP 세션으로 유도) 을 통해 공격 

 

이러한 공격은 HSTS를 적용을 통해 SSL 연결을 강제화하여 방어 할 수 있음.

 

 

 

 

728x90
728x90

WEBTOB 4191버전부터 하나의 LISTEN PORT에서 다중의 SSL인증서 적용이 가능하다고 한다.

단, RequiredCiphers와 Protocols 같은 세부설정은 SSL절의 최상단에 있는 녀석의 설정만 먹는다고 한다.

이는 wbssl에서 참조하는 openssl에서도 같은 문제이기도 하다.
따라서 openssl에서 수정되는 일이 없으면 WEBTOB 또한 쭉 마찬가지 일 것이다.

728x90
728x90

개요
 리버스프록시 요청 시 통신이 잘되던 도메인에서 특정 시점 이후로 통신이 되지 않음.

현상
  특정 시점 이후로 리버스프록시를 통한 통신 불가.(HTTP 503 발생)
  일반 브라우저에서는 해당 도메인 통신 정상 작동.

원인
 WEBTOB는 요청되는 타겟의 도메인 정보를 컴파일 시 해당시점의 정보로 저장.
 따라서 도메인의 IP가 유동적일 경우 IP가 바뀐 시점 부터는 WEBTOB를 통한 리버스프록시 불가.

해결방안
WEBTOB 설정 변경을 통해 해결 가능
 따라서 다음과 같이 설정

*REVERSE_PROXY
Options="DynamicServerAddress" 적용

> 타겟과 연결 실패시 DNS resolution을 다시 시도한다.

728x90
728x90
정의
 Ajax에는 Same Origin Policy 원칙이 적용.
 현재 브라우져에 보여주고 있는 HTML을 응답해준 웹서버(Origin)에게만 Ajax 요청을 보낼 수 있음.
 OpenAPI등의 활성화로 인해 여러 개의 도메인을 사용해야하는 필요성이 높아짐.
 따라서 크로스도메인간에도 Ajax 요청을 주고 받을 수 있는 방법을 표준화 함. 그것이 CORS(Cross-Origi Resource Sharing) 임.
 CORS는 크로스도메인에 위치한 웹서버가 응답에 적절한 Access-Control-Allow-류의 헤더를 보냄으로써 크로스도메인 Ajax를 허용 할 수 있음.
 ※IE는 IE8부터 지원
 
예시
 기본적으로는 한 페이지에서 서비스 되는 도메인이 2개 이상이 되면 browser에서 다른 도메인 resource 사용을 reject
 해당 기능을 쓰고 싶으면 WEB서버에서 크로스도메인 설정이 필요

 a.com 에서 b.com의 자원을 호출하고 싶다.

 b.com 의 WEBTOB 설정에 다음과 같이 추가

 *HEADERS
 xFrame    Action = "AddResponse",
           FieldName = "Access-Control-Allow-Origin",
           FieldValue = "https://a.com"


 *Vhost
      Headers = "xFrame",
728x90

+ Recent posts