취약한 웹 페이지 개발 및 시큐어코딩
취약한 웹 Git Hub 링크
시큐어코딩 Git Hub 링크
프로그래밍 언어: PHP, JavaScript
개발환경: Visual Studio Code, Vim
서버 및 관리: Apache, Ubuntu
기타: Git Hub, Notion
현대오토에버 모빌티리 SW 스쿨의 프로젝트 주제로 취약한 웹 페이지 개발, 모의해킹 및 진단을 하게되었다. 기존에 개발했던 LAMP웹페이지를 기반으로 코드를 수정 및 기능을 추가하여 만들었다.개발기간: 2024.12.24~2025.01.08
클라이언트:
역할: 사용자와 상호작용하며, 웹 애플리케이션의 UI를 제공
HTML, CSS, JavaScript로 정적 및 동적 콘텐츠를 표시주요 작업: HTML 폼을 통해 데이터를
POST또는GET방식으로 서버에 전송
요청에 따라 새 페이지로 리다이렉트되거나 새로고침된 페이지에서 서버 응답
웹서버:
구성:
Apache 웹서버와 PHP로 클라이언트 요청을 처리역할:
HTML 폼에서 전송된 데이터를$_POST또는$_GET으로 처리
데이터를 검증 및 처리하여MySQL데이터베이스와 상호작용
처리 결과를 HTML 페이지로 반환하거나 리다이렉트
쪽지CRUD(Create, Read, Update, Delete)작업을 PHP 코드로 구현
데이터베이스:
구성: MySQL 데이터베이스를 사용하여 데이터를 영구적으로 저장합니다.역할: members 테이블: 사용자 정보 저장
messages 테이블: 쪽지 데이터 저장(보낸 사람, 받는 사람, 내용, 전송 시간 등) 등 다양한 테이블로 구성
SQL 쿼리를 사용하여 데이터 생성, 읽기, 수정, 삭제 처리.
로그인, 회원가입: Hash를 사용하여 비밀번호 저장 및 로그인 시 Hash값 비교
Prepared Statement로 sql injection 방어
로그인 시도 횟수를 데이터베이스에 저장해서 5회 연속 틀리면 ip차단계정 정보 찾기: smtp를 기반으로 메일을 보내어 인증번호를 입력하면 사용자의 계정 정보를 찾음
게시판 및 댓글: sql 인젝션 방어 및 XSS, CSRF 방어를 위한 시큐어 코딩 적용
비밀글의 로직을 수정하여 url의 num을 수정하여 인가되지 않은 사용자의 비밀글 열람 방어Shop: 데이터베이스에 물건의 정보 등을 저장
구매목록 및 장바구니: sql injection 방어를 해서 부적절한 방법으로 물품 구매를 방어
쪽지: sql injection 방어를 통해 쪽지의 내용 변조 방어