이 장에서는 XFrame5 솔루션에서 제공하는 보안 관련 기능중 XSS 보안에 대해서 기술합니다. 이 장에서 기술하는 내용은 아래와 같습니다.
SQL injection 과 함께 웹 상에서 가장 기초적인 취약점 공격 방법의 일종으로, 악의적인 사용자가 공격하려는 사이트에 스크립트를 넣는 기법을 말한다. 공격에 성공하면 사이트에 접속한 사용자는 삽입된 코드를 실행하게 되며, 보통 의도치 않은 행동을 수행시키거나 쿠키나 세션 토큰 등의 민감한 정보를 탈취한다.
XTRAN_XSSENCODING 실행 파라미터 값을 true 로 설정시 동작한다.
UI → 서버로 데이터 송신시 아래의 작업이 수행된다.
구분 | 설명 |
---|---|
1 | XDataSet5 HEADER부 xssencoding 값을 '1'로 설정. |
2 | 송신 데이터를 아래의 단계로 인코딩하여 서버로 송신한다. (데이터 Encoding 시 한글/유니코드 문자로 인해, 무조건 encodeURIComponent 을 수행하고, BASE64 인코딩해야함)
|
UI 로부터 수신한 데이터 처리 방식은 아래와 같다.
구분 | 설명 |
---|---|
1 | XDataSet5 HEADER부 xssencoding 값이 '1'인지 비교하여 수신 데이터 디코딩 처리 |
2 | getData API 호출시 헤더부의 xssencoding 값이 '1'인 경우, 문자열을 HTML TAG FILTER 를 적용한 문자열로 리턴한다. [HTML TAG FILTER 대상]
화면에서 설정한 데이터 : <&123>
|
3 | getData API xssencoding 처리 여부에 대한 파라미터 지정 API 제공한다.
XDataSet5 헤더부 xssencoding 값이 '1'이더라도, HTML TAG FILTER를 적용하지 않고자 하는 경우에는 htmlTagFilter 파라미터 값을 false로 지정하여 위의 함수를 호출한다. |
4 | getData API로 구한 값이 HTML TAG FILTER가 적용되어 있을 때, 원래대로 재치환을 해야 하는 경우 replaceHTMLTagFilter API를 호출한다. (Static 함수임)
예를들어 다음과 같이 화면에서 전달된 데이터를 가져온 후 XDataSet5 xDataSet5 = new XDataSet5(request, response); String strEmpData = xDataSet5.getData("DS_REQ", "EMP_DATA", 0, true); 다음처럼 값을 재치환 할 수 있다. System.out.println("strEmpData = " + XDataSet5.replaceHTMLTagFilter(strEmpData)); |
이 장에서는 XFrame5 솔루션에서 제공하는 보안 관련 기능중 데이터 보안에 대해서 기술합니다. 이 장에서 기술하는 내용은 아래와 같습니다.
데이터 복사 보안은 UI 에 표현된 데이터에 대해서 사용자의 복사를 방지하는 기능이다.
PROTECT_COPY 실행 파라미터는 필드성 컴포넌트 및 그리드/그리드 컬럼에서 데이터의 사용자 복사 방지 관련 속성 값을 기본값으로 동작한다.
protect_copy 속성은 필드성 컴포넌트 및 그리드/그리드 컬럼에서 데이터의 사용자 복사 방지 관련 속성이며, 아래와 같은 값을 제공한다.
xFrame5 솔루션에서 제공하는 암호화 관련 API 는 두가지 분류로 제공된다.
API | 설명 |
---|---|
encrypttext, decrypttext | 데이터에 대한 암호화/복호화 처리 수행 |
setencryptkey | 3DES, AES 방식에 적용될 KEY 값 |
gethashencrypt | 해쉬 알고리즘을 사용하여 문자열을 암호화 |
쿠키 저장에 대한 기능을 방지하는 기능이다.
PROTECT_COOKIE 실행 파라미터는 factory. Setcookie API 를 통해서 쿠키 정보 저장 기능 허용 여부를 지정한다.