반응형

# 크로스 사이트 스크립트 (XSS)

  • 웹 페이지에 악의적인 스크립트를 포함시켜 사용자 측에서 실행되게 유도할 수 있는 공격 기법이다.
  • XSS의 공격 방법에는 Reflected XSS, Stored XSS, DOM XSS가 존재한다.
  • XSS는 외부 입력값, 출력값에 스크립트가 삽입되지 못하도록 각종 특수문자(&, >, <, ", ', /, (, ) 등)에 대해 문자열 치환 함수를 구현해야 한다.
  • 문자열 치환(replace)를 활용한 방지 방법이 있다.
replaceAll(변환하고자 하는 대상 문자열, 변환할 문자 값)
public int doWrite(int cateItemId, String title, String body) {

		SecSql secSql = new SecSql();

		secSql.append("INSERT INTO article");
		secSql.append("SET regDate = NOW()");
		secSql.append(", title = ? ", title.replaceAll("<", "&lt;").replaceAll(">", "&gt;").replaceAll("\r\n", "<br>"));
		secSql.append(", body = ? ", body.replaceAll("<", "&lt;").replaceAll(">", "&gt;").replaceAll("\r\n", "<br>"));

		return DBUtil.insert(dbConn, secSql);
	}

 

 

  • 라이브러리를 사용하는 방법도 있다. ( 참고 : github.com/naver/lucy-xss-servlet-filter )
반응형

+ Recent posts