분류 전체보기 33

[4주차 강의] 프록시 서버 활용하기

지난주 복습1. 식별 / 인증 동시2. 식별 / 인증 분리3. Hash로 비밀번호 처리하는 것4. 쿠키 / 세션 / 세션 ID 첫번째 강의 : Burp Suite 개념1. Web Proxy Tool : 중간자, 쪽지를 대신 전달하는 친구, 웹서버로 오고가는 요청(패킷)을 대신 전달하는 친구2. Burp Suite은 Web Proxy Tool의 대표적인 툴 중 하나3. Burp Suite의 메인 기능 : proxy4. proxy setting > proxy listeners : client로부터 받는 것. 기본적으로 8080으로 받는데, 간혹가다가 직접 추가할 때도 있음. 이때 Port 설정하고 address 설정을 하면됨. 5. address설정 - Lopback only : 내 컴퓨터의 크롬에서 로컬 ..

[3주차 코칭] 이제 진짜 해킹 시작!

3주차 리뷰1. 세션 : 웹서버와 내가 어떻게 기억하고 있을지, 식별/인증/유지2. 세션 ID 값은 예측이 불가능해야하고 위조가 가능하면 안됨3. 쿠키 : 클라이언트측에 저장되는 정보, 웹 서보로 보내는 웹 패킷 + 데이터 쪼가리4. 세션 : 웹 서버에 저장되는 정보 Q&A1. if (password_verify($row['user_password'], $hash_post))if (password_verify($userpassword, $hash_db))이렇게 password hash 비교하는 값을 반대 방식으로 해도 결과값이 똑같이 나오는데데이터베이스 변수를 앞에다 넣고 post 변수 해쉬값을 뒤에다 넣어도 괜찮나요?2. 로그인로직이 부루트포스방지 땜에 5회제한을 둔다거나 prepare문을 쓴다거나 이..

[3주차 강의] 로그인 인증 작동 방식

지난주 복습1. SQL, DB : select, insert, update, where구문과제1. DB Connector : DB에게 물어볼려면 계정정보를 php에 넣어놔야한다.2. row를 통해서 학생의 점수를 가져오는 간단한 코드3. 회원가입 기능 : insert 구문을 통해서 실행4. mysqli_close($conn)을 써줘야지 규모가 커질 때 서버가 느려지지 않는다.첫번째 강의 : 로그인 인증 과정1. 로그인 과정 : 그 사람이 맞는지 확인하는 작업2. 식별과 인증의 과정을 거침3. 식별 : 피아식별, 수많은 데이터 중에 특정 데이터를 후레쉬로 비추는 작업. 수많은 정보들 중에서 특정 고객을 찾아내는 작업. 식별정보는 UNIQUE해야함. 중복되는 값이면 안된다.4. 고유식별정보 : 세상에서 하나..

[3주차 과제] 로그인 로직

3주차 과제복습(로그인 로직 이해, 식별/인증)지난 과제(특별과제 제외)로그인 페이지 (로직 4개)식별/인증 동시식별/인증 분리식별/인증 동시(with Hash)식별/인증 분리(with Hash)여러가지를 해도 괜찮음. 노말틱님은 17개까지도 만들어봤다고(추가 과제) JWT가 뭔지 찾아보고 공부하기, JWT 로그인 만들어보기1주차 과제 때 JWT로 하는거 고민했었는데 결국 해도 되는거였다~

[2주차 코칭] 이제 보안 시작

2주차 리뷰1. 2주차의 핵심은 DataBase이다2. 그러면 DataBase와 이야기하는 주체는 WAS3. and, or 개념 정리4. sql InJection 때 parameter 위치에 따라서 결과가 달라지는 경우가 많음 Q&A1. "SELECT 문은 객체를 반환하고, INSERT 문은 boolean을 반환하더라고요, 저는 이걸 조건문으로 이용해서, 회원가입성공여부를 판단하는데 활용했는데, 혹시 조건문말고 다른 방식으로 활용할 수 있는 예가 있을까요?"2. "HTML에서 input의 type을 password로 하면 입력값이 가려지잖아요. 그런데 MySQL에도 그런 식으로 비밀번호가 자동으로 가려지거나, 해시 처리되는 기능이 따로 있나요?"3. 추가로, insert하는 구문에서, where id='..

[2주차 강의] WAS와 DB의 상호작용

1주차 복습1. 웹서버 구조2. URL 구조첫번째 강의index 페이지에 들어갔을 때 바로 로그인 페이지가 나오면 좋겠다index 페이지에서 로그인했는지 확인하고 안했으면 로그인페이지로 이동한다index 페이지가 사실상 main 페이지이다header : 응답 헤더에다가 header 안에 쓰는 내용을 넣어줌header("location:login.php") : 로그인 페이지로 이동함exit을 써야지만 index의 코드로 넘어가지 않는다로그인을 해야지만 index.php를 볼 수 있는 상황인데 exit이 없으면 리다이렉트는 되더라도 코드상에는 내용이 보이게 된다 -> 취약점action을 비워두면 자기 자신에게 보내게 된다require_once를 통해서 다른 곳에서 만든 함수를 가져오기에러 출력하면 어디에서 ..

[2주차 과제] 로그인, 회원가입, DB 연결

1. 복습(Database, SQL)2. get방식으로 학생의 점수가 출력되는 것을 만들기3. 회원가입 페이지 만들기(기능 구현)4. 로그인 페이지(DB 연동)5. 혹시나 심심하면 마이페이지 개발복습은 포스팅으로.조금 비틀어서 나의 업무 To-do 목록을 보는거로 만들어 볼까.회원가입 페이지를 만들되 마스터 계정에서 승인 해줘야지만 가능한 구조로 만들자. 백엔드는 자바로 할지 node.js로 할지 고민했는데 향후 사용할 기술도 미리 익혀둘겸 FastAPI를 활용하기로 결정!DB는 로컬로 할지 원격으로 할지 고민해봤는데 양도 적을 것 같으니 RDS 프리티어로 하자.이것도 간단하게 정보 수정하는걸로 만드는걸로~

[1주차 코칭] 블로그 포스팅 주제 줍줍

1주차 리뷰1. 웹서버 동작2. Client Side Script : 웹 브라우저가 읽고 해석하는 언어들 (HTML, CSS, JavaScript)3. Server Side Script : Web Application Server, PHP, ASP, JSP, Python, node.js(JavaScript를 실항할 수 있는 엔진, 엄밀히말하면 JavaScript는 Server Side Script는 아니다.)4. HTTP 프로토콜 : Get과 POST의 차이와 사용방법, 요청과 응답 양식5. HTTP 응답 status : 200(success), 300(Redirect), 400(Client Error), 500(Server Error)6. 404 : Not Found, **여친이 없는 것은 여친의 잘못..

[1주차 과제 해결] 실용적이고 간단한 방안

**1주차 과제**1. 복습(웹 서버 이해)2. 간이 로그인 페이지 만들기(DB연결X) admin, admin1234라고 입력했을 때 로그인을 시켜주는 페이지 만들어보기3. 로그인 페이지 이쁘게 만들기.(CSS / BootStrap)  ⚙️ 기술 선택 이유와 나만의 개발 환경 구성 정리말틱님이 강의로 가이드 준 방식 그대로 따라가기보다는,내가 만들고 싶은 서비스의 목적과 개발 환경의 효율성을 고려해서몇 가지 핵심 기술을 변경하거나 대체해서 사용하기로 결정했다.말틱님의 컨펌?도 있었으니 크게 우려하진 말자.1. Client : PHP → React (TypeScript)🔹 APM 방식: PHP서버에서 HTML을 직접 렌더링하는 방식 (전통적인 MPA)비즈니스 로직도 PHP 안에서 처리됨웹..

[1주차 강의] 3. 동적페이지

웹서버는 파일을 전달하는 친구이다.클라이언트마다 다른 데이터를 보여줘야한다.동적 페이지를 누가 만드느냐? WAS(Web Application Server)세가지 구성요소 : Web 서버, WAS, DB클라이언트가 특정 파일을 요청할 때, 특정 파일이 동적페이지이면 web서버는 WAS에게 요청함WAS는 필요하면 DB를 조회하고 페이지를 만들어서 Web서버에 전달하고 Web서버는 클라이언트에게 전달함./dockerCMD & : 백그라운드로 실행소스코드를 본다고 해서 실제 코드가 보이지 않는다. WAS가 처리한 결과만 볼 수 있다.php 문법 - $_GET['name'] : GET Method로 전달받은 파라미터Method : Get, PostFront-end : 클라이언트 측 코드(브라우저가 실행하는 코드)..