티스토리 뷰
#SQL Injection
왜 발생할까?
Validation check를 하지 않았기 때문에. 그렇다면 해답은?
PreparedStatement 를 쓰자.
ORM을 쓰자.
그렇다면 SQL Injection을 막으려면 어떻게 해야할까?
일단 문제부터 파악을 한다.
이 코드에는 Statement 로 적은 것과, 쿼리문에 직접 사용자가 입력한 값을 넣는 2가지 문제가 있다. 이 코드를 고치면 아래와 같다.
아래와 같이 수정한다.
이렇게 바꾸어주어야 한다.
아래도 동일하게 바꾸어 준다.
#XPath Injection
Xml을 읽어올 때 사용한다. 그러나 실무에서는 잘 사용하지 않음
SAX DOM Parser, DOM Parser보다 XPath가 사용하기 편하다.
#패스워드 정책
패스워드를 적었는지 안적었는지만 체크하는 코드는 안전하지 않다. 그래서 정책에 맞게끔 적었는지를 정규표현식을 활용하여 체크할 수 있어야한다.
실습
패스워드를 알맞게 적은 뒤 확인을 누르면 알맞은 비밀번호라고 결과가 뜬다.
아래 코드로 비번을 관리할 수 있다.
String passwordPolicy = "((?=.*[a-zA-Z])(?=.*[0-9])(?=.*[!@#$%^&*()]).{8,})";
'프레임워크 > Spring' 카테고리의 다른 글
추상클래스와 인터페이스 (0) | 2016.06.03 |
---|---|
[Mongo DB] Find (0) | 2016.05.31 |
[Secure Coding 실습] Encoding (0) | 2016.05.30 |
싱글톤 (0) | 2016.04.28 |
[Secure Coding 실습] Paros 설치, Session 과 Cookie (0) | 2016.04.27 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 클래스
- 게시판 만들기
- er다이어그램
- 포스팅하기
- mongo db
- aop
- ERD
- 뒤로가기 버튼
- spring
- Linear Layout
- Erwin
- 자바프로그래밍
- 메소드
- intent
- 뉴스피드 가져오기
- Relative Layout
- JSP
- jQuery
- MVC
- 제이쿼리
- 배열
- 예외처리
- 글쓰기 버튼
- query
- 메뉴바에 버튼 생성하기
- sql
- facebook 연동
- activity
- mybatis
- 쿼리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함