Secure Coding Guide | 취약한 비밀번호 허용


정의

비밀번호 조합규칙(영문, 숫자, 특수문자 등)이 미흡하거나 길이가 충분하지 않아 노출될 수 있는 보안약점이다.

영향

개인 정보 유출과 같은 침해 사고 발생한다.

발생 및 조치 방법

적절한 패스워드 생성 규칙이 없는 경우에 발생한다.

안전하지 않은 Java 코드의 예

try {
  String id = request.getParameter("id");
  String passwd = request.getParameter("passwd");
}
catch (SQLException e){ ...... }

사용자가 입력한 패스워드에 대한 복잡도 검증이 없이 가입 승인 처리를 수행하고 있다.

안전한 Java 코드의 예

try {
    String id = request.getParameter("id");
    String passwd = request.getParameter("passwd");
    if (passwd == null || "".equals(passwd))
        return;
    if (!passwd.matches("") && (passwd.indexOf("@!#") > 0) && (passwd.length() > 7)) {
      ...
  } catch (SQLException e) { ...... }

사용자 계정을 보호하기 위해서 패스워드 복잡도 검증 후 가입 승인처리를 수행해야 한다.