일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- XCP-ng
- docker
- Proxy
- pfsense
- proxycfg
- application security
- ELASTIC
- xe guest utilities
- ssh key 배포
- hardening
- centos 8
- 보안양파
- 한글가이드
- elastic stack
- freebsd
- Kibana server is not ready yet
- 로그인불가
- GitLab
- Elasticsearch
- x-pack
- miniconda
- bash
- ansible
- Windows
- Kibana
- G-suite
- macos
- endpoint security
- PlayBook
- Today
- Total
선 밖에 선 자유인
Anti XSS Code pattern 본문
// anti XSS // ASP 코드 function checkBadString(s) s=trim(s) s=replace(s, "<", "<") s=replace(s, ">", ">") s=replace(s, "cookie", "cook1e") s=replace(s, "document", "d0cument") s=replace(s, "script", "scr1pt") s=replace(s, CHR(32), " ") s=replace(s, CHR(34), "") s=replace(s, CHR(39), '") s=replace(s, CHR(23), "") s=replace(s, CHR(10) & CHR(10), "</p><p> ") s=replace(s, CHR(10), "<BR> ") checkBadString=s end function // 숫자만 들어오는 입력 허용시 function checkInputString(s) if not isnumeric(s) then Response.Redirect "/error/error.asp" End If End function // JSP환경 public static String strBlockSpecialTags(String source) { STring [] oldString={"<html", "</html", "<meta", "<link", "<head", "</haed, "<body", "</body", "<form", "</form", "<script", "</script", "<style", "</style", "script:", "cookie", "document."}; String [] newSTring={"<hHTML", "</hHTML", "<hMETA", "<hLINK", "<hHEAD", "</hHEAD, "<hBODY", "</hBODY", "<hFORM", "</hFORM", "<hSCRIPT", "</hSCRIPT", "<hSTYLE", "</hSTYLE", "script:", "cook!e", "d0cument."}; return strReplaceignoreCase(source, oldString, newString); } // 사용자가 입력값을 URL을 이용해 직접 읿력 받고, 입력 받은 값이 상수값으로만 한정될 경우 String Value=request.getParameter("argment"); Int newValue; if(Value != null){ try{ newValue=Integer.valueOf(value).intValue(); } catch(NumberFormatException e){ response.sendRedirect("/error/error.jsp"); } } // 문자열을 입력해서 form문을 형성하여 html에 나타낼 때는 javascript를 이용해 URLEncoding, 자바의 URLEncode class 이용 <form method=post action="actionpage.jsp"> <script> document.writein("<input type=hidden name=input1 value="+escape(<%=arg1%>+">"); document.writein("<input type=hidden name=input2 value="+escape(<%=arg2%>)+">"); document.writein("<input type=hidden name=input3 value="+escape(<%=arg3%>)+">"); </script> </form> // 사용할 문자들만 허용 String value=request.getParameter("argument"); if(Value == null || Value.matches("[^0-9]"){ response.sendRedirect("/error/error.jsp"); } // PHP 환경 대응 방안 <? function replaceMetastring($MetaString){ $MetaString=str_replace("<", "<", $MetaSTring); $MetaString=str_replace(">", ">", $MetaSTring); $MetaString=str_replace("cookie", "cook!e", $MetaSTring); $MetaString=str_replace("document", "d0cument", $MetaSTring); return $MetaString; } $MetaString=replacemetaString("<script>alert('XSS')</script>"); echo $MetaString; ?>