취약한 웹 페이지 개발 및 시큐어코딩

틈메이러·2025년 1월 13일

포트폴리오

목록 보기
4/11
post-thumbnail

🍅주제

취약한 웹 페이지 개발 및 시큐어코딩
취약한 웹 Git Hub 링크
시큐어코딩 Git Hub 링크


1. 개발 환경

프로그래밍 언어: PHP, JavaScript
개발환경: Visual Studio Code, Vim
서버 및 관리: Apache, Ubuntu
기타: Git Hub, Notion


2. 개발 배경

현대오토에버 모빌티리 SW 스쿨의 프로젝트 주제로 취약한 웹 페이지 개발, 모의해킹 및 진단을 하게되었다. 기존에 개발했던 LAMP웹페이지를 기반으로 코드를 수정 및 기능을 추가하여 만들었다.

개발기간: 2024.12.24~2025.01.08


3. 아키텍처

클라이언트:
역할: 사용자와 상호작용하며, 웹 애플리케이션의 UI를 제공
HTML, CSS, JavaScript로 정적 및 동적 콘텐츠를 표시

주요 작업: HTML 폼을 통해 데이터를 POST 또는 GET 방식으로 서버에 전송
요청에 따라 새 페이지로 리다이렉트되거나 새로고침된 페이지에서 서버 응답


웹서버:
구성:
Apache 웹서버와 PHP로 클라이언트 요청을 처리

역할:
HTML 폼에서 전송된 데이터를 $_POST 또는 $_GET으로 처리
데이터를 검증 및 처리하여 MySQL 데이터베이스와 상호작용
처리 결과를 HTML 페이지로 반환하거나 리다이렉트
쪽지 CRUD(Create, Read, Update, Delete) 작업을 PHP 코드로 구현


데이터베이스:
구성: MySQL 데이터베이스를 사용하여 데이터를 영구적으로 저장합니다.

역할: members 테이블: 사용자 정보 저장
messages 테이블: 쪽지 데이터 저장(보낸 사람, 받는 사람, 내용, 전송 시간 등) 등 다양한 테이블로 구성
SQL 쿼리를 사용하여 데이터 생성, 읽기, 수정, 삭제 처리.


4. 기능(시큐어코딩)

로그인, 회원가입: Hash를 사용하여 비밀번호 저장 및 로그인 시 Hash값 비교
Prepared Statement로 sql injection 방어
로그인 시도 횟수를 데이터베이스에 저장해서 5회 연속 틀리면 ip차단

계정 정보 찾기: smtp를 기반으로 메일을 보내어 인증번호를 입력하면 사용자의 계정 정보를 찾음

게시판 및 댓글: sql 인젝션 방어 및 XSS, CSRF 방어를 위한 시큐어 코딩 적용
비밀글의 로직을 수정하여 url의 num을 수정하여 인가되지 않은 사용자의 비밀글 열람 방어

Shop: 데이터베이스에 물건의 정보 등을 저장

구매목록 및 장바구니: sql injection 방어를 해서 부적절한 방법으로 물품 구매를 방어

쪽지: sql injection 방어를 통해 쪽지의 내용 변조 방어



profile
나는야 멋쟁이 토마토

0개의 댓글