본문 바로가기

전체 글109

내 비밀번호 나도 모르게 만드는 법 bcrypt 목차1. bcrypto2. 해시로 암호 만들기3. 내 암호가 맞는지 확인하는 방법1. bcrypto복호화가 불가능한 단방향 해시 알고리즘예전에는 어떤 사이트에서 비밀번호를 잊어버려 찾을 때 인증을 거치고 저장된 비밀번호를 알려주었다. 하지만 언젠가부터 비밀번호를 찾는 것 대시 새로운 비밀번호로 변경하는 방식들이 사용되었다. 그 이유는 패스워드를 암호화하여 저장하기 때문에 서버도 알지 못하게 때문에 패스워드를 변경해야만 인증이 가능하기 때문이다.이러한 방식은 인증정보를 탈취하여 권한을 사칭하는 공격방법을 방지하기 위해 사용되었다.단방향 해시알고리즘을 통해 비밀번호를 암호화하게 되면 복호화가 불가능하기 때문에 탈취가 되더라도 공격자는 함부로 사용할 수 없다. 2. 해시로 암호 만들기그렇다면 암호화 알고리즘을.. 2024. 6. 22.
cors 목차1. CORS란?2. 출처 확인3. CORS 설정하기4. 예제1. CORS란?Cross Origin Resource Sharing서로 다른 도메인, 프로토콜, 포트 간에 데이터를 공유하는 것을 제어하는 브라우저 보안 정책네트워크를 통해 클라이언트가 서버에 요청을 할 때 서버 입장에서는 클라이언트가 악의를 갖고 있는지 알 수 없다. 그래서 서버와 동일한 출처를 제외하고 이외에는 접근을 허용하지 않는다. 이 때 동일하지 않는 출처를 Cross Origin이라고 한다.2. 출처 확인그렇다면 서버는 요청이 왔을 때 출처를 어떻게 확인할까? 클라이언트에서 요청을 할 때 본 요청 전에 출처에 대해  허용이 됐는지 확인하는 사전 요청을 하게 되는데 이를 Preflight Requests라고 한다.정책 상 허용이 .. 2024. 6. 21.
MVC패턴 목차1. MVC 패턴?2. 왜 사용할까? 1. MVC 패턴?애플리케이션을  Model, View, Controller 3가지로 나누어 개발하는 디자인 패턴ModelViewControllerDB와 연결하여 데이터를 다루는 로직브라우저를 통해 데이터를 보여주는 로직View와 Model사이에 동작을 제어하는 로직2. 왜 사용할까?MVC패턴을 보면 나누는 것이 복잡해 보이고 관리할 파일이 많아 안좋아 보일 수 있다. 그런데 왜 사용을 하는 것일까? 1 ) 유지보수와 확장성▶ 코드를 기능별로 분리함으로써 특정 기능을 추가하거나 수정할 때 다른 기능들에 영향을 주지 않아 유지보수가 쉬워진다. 2 ) 병행 개발▶ 각 역할을 나누어 개발을 하게 되면 각자가 맡은 역할만 집중하여 개발할 수 있기 때문에 동시에 여러 작업.. 2024. 6. 20.
검색결과 빨리 볼래? INDEX 목차1. 인덱스란?2. 데이터베이스의 인덱스3. 무조건 쓰는 것이 좋을까?4. 테스트1. 인덱스란?데이터베이스 테이블의 검색 속도롤 향상시키기 위한 자료구조인덱스를 번역하면 색인이라고 하며 책 뒤쪽에 여러 단어들과 페이지가 나와있는 것을 말한다. 우리는 이 색인을 참고하여 원하는 내용를 쉽고 빠르게 확인할 수 있다. 데이터베이스도 이런 색인 기능을 제공하여 사용자가 데이터를 검색할 때 빠르게 검색 결과를 제공한다.2. 데이터베이스의 인덱스1 ). 인덱스 생성빠른 검색기능을 제공하는 인덱스는 어떻게 만들까? 검색할 테이블과 어떤 컬럼을 기준으로 인덱싱을 할 것인지 정하여 만들면 된다. 주로 기본키를 기준으로 한다.CREATE INDEX [인덱스명] ON [검색할 테이블]([기준이 될 컬럼])MYSQL에서는.. 2024. 6. 19.