프로젝트(39)
-
개인정보-컴플라이언스-웹애플리케이션 (3. 데이터베이스 및 개인정보 보호)
데이터베이스 및 개인정보 보호 – 시작하기📌 이 단계의 목표:✅ 데이터베이스 보안 강화 (암호화, 접근 제한, 백업 설정)✅ 개인정보 보호 조치 (비밀번호 암호화, 민감 데이터 보호)✅ SQL Injection 및 권한 관리 최적화 데이터베이스 및 개인정보 보호 – 세부 항목✅ 비밀번호 암호화bcrypt 또는 argon2로 비밀번호 해싱 및 저장미완료✅ DB 접근 권한 제한관리자만 중요 데이터 조회 가능 (role-based access)미완료✅ SQL Injection 방지 (추가 강화)ORM 사용 및 모든 입력값 검증 (Sequelize, Prepared Statement)부분 완료✅ 데이터 암호화 (민감 정보 보호)이메일, 전화번호 등 AES-256 또는 환경변수 암호화 적용미완료✅ 백업 및 로그..
2025.02.15 -
개인정보-컴플라이언스-웹애플리케이션 (2. 입력값 검증 및 웹 보안 )
2. 입력값 검증 및 웹 보안 (필수)XSS(크로스사이트 스크립트) 방지:React에서 사용자 입력값 escape 처리dangerouslySetInnerHTML 사용 금지SQL Injection 방지:ORM 사용 또는 Prepared Statement 적용모든 입력값 sanitize 처리CSRF(크로스사이트 요청 위조) 방지:CSRF Token 사용 및 SameSite 속성 설정API는 Referer 및 Origin 검증파일 업로드 보안:업로드 확장자 제한 (예: .exe, .php 금지)파일은 외부 스토리지(AWS S3 등) 사용 및 서버 외부에 저장1. XSS란공격자가 악성 JavaScript 코드를 삽입해 사용자 브라우저에서 세션 쿠키 탈취, 피싱, 악성 행동 수행하는 공격댓글, 게시판, 피드백 ..
2025.02.15 -
개인정보-컴플라이언스-웹애플리케이션 (1. 인증 및 세션 보안)
지금 현재 기능 개발은 어느정도 완성이 되었고 이제는 보안을 신경을 쓸 차례입니다.우리가 알아야할 보안쪽을 알아보겠습니다.1. 인증 및 세션 보안 (필수)세션 보안 강화:HttpOnly, Secure, SameSite=Strict 속성 적용세션 타임아웃: 유휴 30분, 최대 2시간세션 재발급(Session Fixation 방지): 로그인 시 기존 세션 파기 후 새 세션 발급2FA(이중 인증): 관리자 및 슈퍼유저 로그인 시 필수브루트 포스 공격 방지: 로그인 실패 횟수 제한 및 CAPTCHA 적용다중 로그인 차단: 한 계정으로 여러 기기에서 접속 시 이전 세션 종료1-1 HttpOnly, Secure, SameSite=Strict 속성 적용// 세션 미들웨어 설정 강화app.use( session(..
2025.02.14 -
개인정보-컴플라이언스-웹애플리케이션 (수정사항 7)
현재 테이블 구조가 정량 테이블, 정성 테이블 에 피드백이 달려있는 구조였습니다.하지만 그렇게 할 경우 피드백 히스토리를 볼 수 없을 뿐만 아니라 여러 관리자가 피드백을 작성할시 중복으로 저장하기 어렵다고 생각이 들어서 -- 정량 문항 테이블CREATE TABLE quantitative_questions ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '문항 ID', question_number INT NOT NULL COMMENT '문항 번호', question TEXT NOT NULL COMMENT '문항 내용', evaluation_criteria TEXT COMMENT '평가기준', legal_basis TEXT COMMEN..
2025.02.02 -
개인정보-컴플라이언스-웹애플리케이션 (수정사항 6)
전문가가 자신에게 배정된 시스템의 자가진단 결과에 피드백을 작성하기 위해 다음과같이 접근해승ㄹ때 기관회원의 응답을 받아오지못하고있다. 수정코드src/pages/manager/SystemManagement.jsximport React, { useEffect } from "react";import { useRecoilState, useRecoilValue } from "recoil";import { expertAuthState } from "../../state/authState";import { systemsState } from "../../state/system";import { useNavigate } from "react-router-dom";import axios from "axios";impo..
2025.01.29 -
개인정보-컴플라이언스-웹애플리케이션 (수정사항 5)
슈퍼유저페이지에서는 기관회원이 등록한 시스템을 삭제할수 있어야함 시스템삭제 → 해당 시스템의 자가진단결과도 같이 삭제 되어야합니다. ✅ 방법 1: ON DELETE CASCADE 설정 추가 (외래 키)현재 assessment_result 테이블에는 system_id가 systems(id)를 참조하는 외래 키가 존재하지만,이 외래 키에 ON DELETE CASCADE가 설정되지 않습니다. 📌 수정된 assessment_result 테이블 외래 키 설정ALTER TABLE assessment_result DROP FOREIGN KEY assessment_result_ibfk_1;ALTER TABLE assessment_result ADD CONSTRAINT fk_assessment_result_system..
2025.01.29