티스토리 뷰

#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
링크
«   2024/12   »
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
글 보관함