익스트림 프로그래밍(Extreme Programming, XP) : 소프트 개발을 위한 애자일(Agile) 개발 방법론 중 하나이다. 개발 프로세스와 관련된 원칙을 강조하며 팀 협업과 소프트웨어 품질 향상을 중심으로 한다. 작은 규모의 개발팀에서 효과적으로 사용되며 변경이 많은 요구를 접할 경우 유용하다. 이를 구동시키는 원리는 상식적인 원리와 경험을 최대한을 끌어올리는 것이다. 구체적인 실천 방식을 정의 하며 개발 문서보다는 소스코드에 중점으로, 조직적인 개발의 움직임 보다는 개개인의 책임과 용기에 중점을 두고 있다. 핵심적인 원칙과 개념 단순성(Simplicity) : 단순한 코드와 설계를 지향한다. 기능의 우선순위를 정하여 최소한의 기능을 빠르개 개발하고 사용자 피드백을 수렴하여 개선한다. 피드백(..
분산시스템(Disributed System) : 여러 컴퓨터 또는 장치들이 네트워크로 연결되어 작업을 수행하는 컴퓨팅 환경을 말한다. 단일 컴퓨터로 수행하기에 어려운 복잡한 작업들을 여러 컴퓨터에 분산하여 처리함으로서 자원의 확장성, 가용성, 신뢰성을 향상시킨다. 메시지 지향 미들웨어(message-oriented middleware. MOM) : 분산시스템에서 메시지 기반 통신을 지원하는 소프트웨어 계층이다. 다양한 에플리케이션 및 시스템간의 비동기적 메시지를 교환하고 처리 할 수 있는 기능을 제공한다. 다음과 같은 특징을 지닌다. 메시지 큐 : 메시지를 보내는 에플리케이션이나 시스템은 메시지 큐에 메시지를 전송한다. 메시지 큐는 메시지를 안전하게 저장하고 관리하는 역할을 수행한다. 이를 통해서 발신자..
1. UML(Unified Modeling Language) : 시스템이나 소프트웨어의 개발을 위해 사용되는 시각적 모델링 언어. 일반적으로 객체지향형 소프트웨어 개발에 사용되며 시스템의 구조및 동작, 상호작용등을 모델링하고 문서화 하는 데 사용된다. 2. UML(Unified Modeling Language) 다이어그램 : UML에서 사용되는 시각적 그래픽 표기법. 시스템의 다양한 측면을 나타내는데 사용된다. 소프트웨어 시스템의 아키텍처, 클레스 구조, 객체간의 상호작용, 시퀀스 흐름등을 표현 할 수 있다. 정적인 구조 다이어그램과 동적인 행위 다이어그램이 있다. 2.1. 클래스 다이어그램 : 클래스의 구조와 관계 표현에 사용된다. 클래스, 속성, 매서드 및 클래스간의 관계를 보여준다. 구조다이어그램이..
Hash 글자 모양을 바꾸는것 . 단 암호화나 인코딩과 달리 데이터 소실로 인해 원래 값으로 못바꿈 해시의 사용이유 1)데이터 보호.(ex.비밀번호 검증) -> 비밀번호는 찾을 수 없음. 재발급해야 함 2)데이터 무결성 검증 Hash Hacking 1) Hash Collision (해시충돌) : 같은 해시값을 가진 문자가 있음 2) 전부 때려 넣어보기. hashcat : 해시 크랙 툴 3) Rainbiw Table 사람들이 많이 쓰는 값을 미리 테이블로 만들어서 DB를 만들어 두는 것
우선 현제까지 로그인 페이지를 만들었다. 이 로그인페이지의 취약점이 있는지 물론 현제 전부 알진 못하겠고 부실할게 뻔하지만, 그래도 한번 저번에 해봤던 쿠키 변조를 통해 찾아보도록 하겠다. mysql> SELECT * FROM accounts; +----+----------+--------------------------------------------------------------+---------------------+ | id | username | password | email | +----+----------+--------------------------------------------------------------+---------------------+ | 1 | admin | $2y$..