엄범

상속, 인터페이스, 트레이트 차이점과 어떨 때 사용하나.

상속, 인터페이스, 트레이트의 차이 상속과 나머지 두 관계의 가장 큰 차이점은, 인터페이스와 트레이트는 기능 단위 라는 것이다. 그래서 클래스 사이에 연관 관계가 없어도 기능 단위의 공통점을 가지도록 할 수 있다. abstract 추상 클래스를 사용하려면 extends를 사용해야 하므로, 상속 계층에 연결된다. 추상 클래스는 반드시 하나 이상의 추상...

Brute Force / Replay Attack

Brute Force 최대 로그인 실패 횟수를 기록해 계정을 임시로 정지시키는 방법이 유용하다. 로그인에 실패한 사용자가 몇 초 이내에 다시 로그인을 시도하면 무조건 실패로 처리하거나, 성공이든 실패든 몇 초 이후에 다시 시도하라는 메세지를 주는 방법(throttling)도 고려해볼 수 있으나 요즘 잘 쓰이지는 않는 것 같다. 보통 패스워드가 틀렸을 ...

Filtering / Escape

입력 필터링 입력 필터링 작업은 세 단계로 구분하는 것이 좋다. 입력을 구분하는 단계 입력을 필터링하는 단계 필터링된 데이터와 오염된 데이터를 구별하는 단계 입력을 구분하는 단계 세션 데이터 저장소는 서버에 저장되기는 하지만 이를 입력으로 간주하는 것이 안전하며 DB의 데이터도 마찬가지다. 일반적으로 사용하는 외부 입력 출처를 정리하...