정규식, 프로토콜, 현재 작업물의 문제

김민준·2023년 6월 27일
0
비밀번호 검증 정규식
TCP / UDP
CORS / ACAO

현재 작업물의 문제

참조 사이트

비밀번호 검증 정규식

비밀번호 검증을 하기위한 패키지가 있지 않을까 싶었는데, 패키지까지도 필요 없고 정규식으로도 가능했다.

    // 비밀번호 검증하기
    // 6글자 이상 , 대문자 ~ 소문자 , 어떤 숫자든지 가능
    const passRegex = /^(?=.*[A-Za-z])(?=.*\d).{6,}$/;
    const passCheck = passRegex.test(password);

    // 위의 조건 + id 를 포함하지 않을 것
    if (passCheck || password.includes(id)) {
        res.status(400).json({
            errorMessage:
                "password를 ID를 포함하지 않으면서 최소 4자 이상으로 작성하세요",
        });
        return;
    }

(?=.*\d) 가 숫자인 이유
(?=) 긍정형 전방탐색
.* 숫자를 포함한 임의의 문자를 0번 이상 반복
\d 숫자를 의미하는 특수문자 클래스

// 소문자, 대문자, 한글중 아무거나
// ^는 문자열 시작의 의미
/^[a-zA-Z0-9-]{3,}$/;

// 한글만, | 는 or의 의미
/[-|-|-]/

// (?=.*단어or규칙) 는 and의 의미
/^(?=.*[A-Za-z])(?=.*\d).{6,}$/;

TCP UDP

둘다 프로토콜이다.

이미지 출처
위 이미지의 통신 Transport 계층에서 일어나는 일이다.

  1. TCP Transmission Control Protocol
  • 비연결형 서비스
    데이터를 인터넷에서 메시지의 형태로 보내기 위한 프로토콜, IP와 함께 사용한다.
  • IP 데이터의 배달
  • TCP 패킷(데이터 조각)의 추적 및 관리
    = 가상 회선 방식이 이다.
  • 연결지향 방식 패킷을 전송하기 위한 논리적 경로를 해정한다.
  • 패킷에 번호를 부여하여, 손실을 방지한다.
  • 스트림 전송으로 데이터 전송의 크기가 무한이다.

연속성보다는 신뢰성 있는 전송을 위해서 사용하는 프로토콜이다. 스트리밍에 불리하다.

  1. UDP User Dateagram Protocol
    데이터를 데이터그램 단위로 처리하는 프로토콜
  • 연결형 서비스
  • 데이터그램 독립적인 관계를 지니는 프로토콜, 65535(216-1) byte의 크기를 넘으면 잘라보낸다.
  • 패킷이 서로 다른 경로로 전달된다.
  • 정보를 주고받는 신호절차가 없다.
  • UDP헤더의 CheckSum 필드로 최소한의 오류 검출만한다.

위의 특성으로 인해 TCP 보다 빠르지만, 신뢰성이 낮다. 스트리밍에 유리하다.

이미지 출처

CORS / ACAO

  1. CORS Cross-Origin Resource Sharing
    HTTP 헤더를 사용해, 한 출처에서 실행중인 웹 앱이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에게 알려주는 체제
  2. ACAO Access Control Allow Origin
    CORS를 사용할 때 검증없이 ACAO에 추가하면 보안 취약점이 생긴다. 도메인이 화이트 리스트에 포함되어 있을 때만 ACAO에 추가하는 것으로 해결 가능하다.

현재 작업물의 문제점

스키마에서 내보낸 모듈을 라우터에서 처리하지 못하고 있다. 여러번 검증해 본 결과 라우터와 스키마에서는 제대로 된 것이 확실하니 스키마들을 모아둔 폴더의 index.js 쪽에서 sequelize 를 만들 때 문제가 있는 것으로 판단된다.

참조한 사이트

비밀번호 검증 정규식
정규식 정리
정규식 한글
정규식 정리
윗첨자
벨로그의 마크업 기능으로 문자열을 $ 로 감싸서 수식을 표현할 수 있다.
2162^16
하지만 윗첨자로 한 글자만 올릴 수 있다.

CORS
ACAO

profile
node 개발자

0개의 댓글

관련 채용 정보