인프런 커뮤니티 질문&답변

조재영님의 프로필 이미지
조재영

작성한 질문수

웹 개발자와 정보보안 입문자가 꼭 알아야 할 웹 해킹 & 시큐어 코딩

대응 방안-2

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

해결된 질문

작성

·

327

1

java 공부 중에

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

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

답변 2

0

크리핵티브님의 프로필 이미지
크리핵티브
지식공유자

답변이 늦어 죄송합니다.

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

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

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

0

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

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

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

조재영님의 프로필 이미지
조재영

작성한 질문수

질문하기