[웹개발 보안] Secure Coding 방법론
<웹보안 위험요소>
1. SQL 인젝션
Local Proxy 에 의해 값이 위조될 수 있다.
2. Cross site script
-> 크로스사이트필터를 반드시 적용해야한다 XSSFilter
public String htmlEncode(String data){
return data.replaceAll("<", "<").replaceAll(">", ">");
}
@RequestMapping(value="/test/xss_test.do", method = RequestMethod.POST)
@ResponseBody
public String testXss(HttpServletRequest request) {
StringBuffer buffer=new StringBuffer();
String data=request.getParameter("data");
buffer.append(htmlEncode(data));
return buffer.toString();
}
3. 파일 업로드
-> 파일 사이즈 체크 필수! -> 그렇지 않으면 DDOS 공격대상이 될수 있다
-> file type 체크 필수!
- 파일명 : a.jpg, Content-Type
-> Magic Code(Mime Type)
-> 외부에서 직접 접근 가능한 경로의 파일 Upload는 최악이다.
-> Cat.jpg(로컬) ->Cat.jpg(웹서버) 파일명은 업로드시 변경하는 것이 좋다
-> 실행권한을 주면 안된다!
4. CSRF
-> 이전페이지 체크, Referer[헤더정보]:list.do
-> CSRF 토큰을 랜덤하게 발급하여 사용(기본)
-> 추가인증
5. 인증/인가