728x90

* View 화면 단에서 글 저장 시 HTML 코드 치환

 

1. ( .jsp) - ajax 로 Controller -> Service -> Dao -> DB 저장 시

넘겨야할 대상 Title / Content 등 내용에 HTML code를 통한 보안 Issue 처리

function escapeHtml(str) {

if (str == null) {

return "";

}else{

return str

.replace(/&/gi, "&")

.replace(/;/gi, ";")

.replace(/</gi, "<")

.replace(/>/gi, ">")

.replace(/ /gi, " ")

.replace(/\n/gi, "<br>")

.replace(/\"/gi, """)

.replace(/\'/gi, "&apos;")

.replace(/#/gi, "&num;")

;

}

}

2. HTML code 치환되어 DB에 저장된 내용 다시 역치환하여 보여주기.

 

function unescapeHtml(str) {

if (str == null) {

return "";

}else{

return str

.replace(/&/gi, "&")

.replace(/&semi;/gi, ";")

.replace(/</gi, "<")

.replace(/>/gi, ">")

.replace(/ /gi, " ")

.replace(/<br>/gi, "\n")

.replace(/"/gi, "\"")

.replace(/&apos;/gi, "\'")

.replace(/&num;/gi, "#")

;

}

}

* Server 단에서 입력받을 시 HTML code 치환하는 코드

(Util.java 에 공용으로 사용할 function 정의 후 serviceImpl.java

에서 해당 내용 치환)

ex> vo.setTitle(Util.htmlToText(vo.getTitle()));

public static String htmlToText(String input) {

String ret = null;

 

ret = input.replaceAll("&", "&")

.replaceAll(";", "&semi;")

.replaceAll(">", ">")

.replaceAll("<", "<")

.replaceAll(" ", " ")

.replaceAll("\n", "<br>")

.replaceAll("'", "&apos;")

.replaceAll("\"", """)

.replaceAll("#", "&num;");

 

return ret;

}

+ Recent posts