Java

XSS(Cross Site Scripting) 취약점 해결을 위한 처리 함수

XSS 처리를 위해 구현된 메소드입니다. 필요시 참고하세요.

크로스 사이트 스크립팅(Cross Site Scripting, XSS) 이란
해커 또는 공격자가 웹 사이트에 스크립트를 삽입하는 공격기법으로, 사용자의 세션을 가로채거나 웹사이트를 변조 또는 악의적 콘텐츠를 삽입 또는 피싱 공격을 진행하는 것을 말합니다. 

public static String replaceXSS(String sourceString)
{
	String rtnValue = null;
	if (sourceString != null)
	{
		rtnValue = sourceString;
		if (rtnValue.indexOf("<x-") == -1)
		{
			rtnValue = rtnValue.replaceAll("< *(j|J)(a|A)(v|V)(a|A)(s|S)(c|C)(r|R)(i|I)(p|P)(t|T)","<x-javascript");
			rtnValue = rtnValue.replaceAll("< *(v|V)(b|B)(s|S)(c|C)(r|R)(i|I)(p|P)(t|T)", "<x-vbscript");
			rtnValue = rtnValue.replaceAll("< *(s|S)(c|C)(r|R)(i|I)(p|P)(t|T)", "<x-script");
			rtnValue = rtnValue.replaceAll("< *(i|I)(f|F)(r|R)(a|A)(m|M)(e|E)", "<x-iframe");
			rtnValue = rtnValue.replaceAll("< *(f|F)(r|R)(a|A)(m|M)(e|E)", "<x-frame");
			rtnValue = rtnValue.replaceAll("(e|E)(x|X)(p|P)(r|R)(e|E)(s|S)(s|S)(i|I)(o|O)(n|N)", "x-expression");
			rtnValue = rtnValue.replaceAll("(a|A)(l|L)(e|E)(r|R)(t|T)", "x-alert");
			rtnValue = rtnValue.replaceAll(".(o|O)(p|P)(e|E)(n|N)", ".x-open");
			rtnValue = rtnValue.replaceAll("< *(m|M)(a|A)(r|R)(q|Q)(u|U)(e|E)(e|E)", "<x-marquee");
			rtnValue = rtnValue.replaceAll("&#", "&amp;#");
		}
	}
	return rtnValue;
}

전자정부 프레임워크의 crossfilter도 고려해보세요.

 

 

개발시 유용한 문자열(STRING) 처리 함수 1탄

파라미터로 넘어오는 String을 , 를 제거하는 방법 public static String removeComma(String str) { String rtnValue = str; if(isNull(str)) { return “”; } rtnValue = replace(rtnValue, “,”, “”); return rtn..

playground.naragara.com

 

 

 

개발시 유용한 문자열(STRING) 처리 함수 2탄

자바에서 byte size를 가져오는 방법 public static int getByteSize(String str) { if(str.isEmpty()) return 0; byte[] byteArray = null; try { byteArray = str.getBytes(“UTF-8”); } catch(UnsupportedEncodi..

playground.naragara.com

 

 

Leave a Reply

error: Content is protected !!