728x90
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | /** * xss 공격을 필터링 합니다. * @param content 사용자가 입력한 내용 * @return content 필터링 이후 내용 */ public static String xssFilter (String content){ /* first filter :: START */ String[] xss = new String[]{ "onstop","layer","javascript","eval","onactivae","onfocusin","applet","document","onclick","onkeydown","xml", "create","onbeforecut","onkeyup","link","binding","ondeactivate","onload","script","msgbox","ondragend", "onbounce","object","embed","ondragleave","onmovestart","frame","applet","ondragstart","onmouseout","ilayer", "javascript","onerror","onmouseup","bgsound","href","embed","onabort","base","onstart","onfocus", "onmovestart","onmove","onrowexit","onunload","onsubmit","innerHTML","onpaste","ondblclick","vbscript", "charset","onresize","ondrag","expression","string","onselect","ondragenter","onchange","append","onscroll", "ondragover","meta","alert","title","ondrop","void","refresh","iframe","oncopy","oncut","ilayer","blink", "onfinish","frameset","cookie","style","onreset","onselectstart" }; String[] xssQuot = new String[xss.length]; for (int i = 0; i < xss.length; i++) { xssQuot[i] = ""; } content=StringUtils.replaceEach(content, xss, xssQuot); /* first filter :: END */ /* second filter :: START */ String[] garbage = new String[]{"onclick=()","=(.)"}; String[] garbageQuot = new String[garbage.length]; for (int i = 0; i < garbage.length; i++) { garbageQuot[i] = ""; } content=StringUtils.replaceEach(content,garbage,garbageQuot); /* second filter :: END */ /* tag filter :: START */ content=StringUtils.replaceEach(content, new String[]{"<",">","(",")","#","&","\"","'","/"}, new String[]{"<",">","(",")","#","&",""","'","/"} ); /* tag filter :: END */ return content; } | cs |
반응형
'Java' 카테고리의 다른 글
[java] 타입변환 Date 를 String 으로 (0) | 2020.07.16 |
---|---|
[java] 현재일자 기준으로 입력받은 날짜 비교하기 (0) | 2020.07.16 |
컬렉션으로 구분자 더하기 ( Whitespace 거르기 ) (0) | 2020.03.12 |
이클립스로 게시판 만들기 (spring ·mybatis ·mariaDB) - 프로젝트 설정 (2) | 2018.11.30 |
이클립스로 게시판 만들기 (spring ·mybatis ·mariaDB) - 프로젝트 생성 (0) | 2018.11.30 |