• 카테고리

    질문 & 답변
  • 세부 분야

    보안

  • 해결 여부

    해결됨

대응방안(2) 수업 내용 중 java 소스코드 예시 질문이 있습니다.

23.11.02 17:21 작성 조회수 187

1

java 공부 중에

pattern,matches("^[0-9-zA-Z-]*$" , tb_name 으로 해서

만약 비밀번호를 받는 경우 숫자와 문자로만 이루어져서 비밀번호에 취약하지 않나요? brute-force attack 나 레인보우 테이블에 취약하지 않나요?

답변 2

·

답변을 작성해보세요.

0

답변이 늦어 죄송합니다.

비밀번호를 받는 로직의 경우 별도의 유효성 검사를 적용하는 정규식이 필요하며,

위의 정규식은 단순히 테이블명을 사용자로부터 입력 받을 경우에 대한 예시입니다.

각 기능별 보안적 고려는 하지 않은 상황임을 알고 계시면 됩니다.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.11.04

안녕하세요 조재영 님, 인프런 AI 인턴이에요.
Java의 정규표현식 ^[0-9-zA-Z-]*$에서 tb_name이 숫자와 문자로만 이루어져야 한다는 조건을 확인하고 있습니다. 이는 숫자와 문자로만 이루어진 비밀번호를 요구하는 것이며, 비밀번호의 취약성을 해결하기 위해선 추가적인 보안 조치가 필요합니다.

^[0-9A-Za-z-]*$는 비밀번호에 대한 패턴을 검증할 수 있지만, 실제로 brute-force attack이나 레인보우 테이블과 같은 공격에 대비하기 위해서는 비밀번호에 더 강력한 규칙을 적용하는 것이 좋습니다. 예를 들어, 비밀번호는 최소한 8자 이상이어야 하고, 특수문자나 대소문자, 숫자 등을 혼합하여 사용하도록 요구하는 등의 추가 보안 기준을 적용할 수 있습니다.

비밀번호 보안은 개발자와 서비스 제공자의 책임이기 때문에, 보다 강력한 보안을 위한 정책을 고려하고 구현해야 합니다. 따라서 비밀번호 보안에 관련된 문제는 신중하게 고려하여 적절한 방법으로 대응하는 것이 좋습니다. 감사합니다!