728x90

회원 테이블 예시이다.

비밀번호는 RSA 암호화 비밀번호를 사용하고, SALT 20자를 적용하여 보안을 고려한다.

access 칼럼은 관리자가 userID를 접속을 불허할 것인지, 비밀번호를 5회 이상 틀릴 경우 접속이 차단되도록 설정했다가 일정 시간이 경과하면 자동으로 접속 허용 상태로 변경처리할 것인지 정하는 용도이다.

가입일자와 최근 접속일자를 구분하여 최근에 접속한 날짜를 기록한다.

로그인 실패횟수를 카운트하여 접속 실패횟수 초과 설정값을 넘어가면 접속을 차단하는 로직을 구현하면 된다.

CREATE TABLE `members` (
  `idx` int(11NOT NULL,
  `userID` varchar(20NOT NULL COMMENT '아이디',
  `userNM` varchar(50NOT NULL COMMENT '성명',
  `passwd` varchar(90NOT NULL COMMENT '비밀번호',
  `salt` varchar(20NOT NULL COMMENT '비밀번호 솔트',
  `telNO` varchar(16DEFAULT NULL COMMENT '사무실전화',
  `mobileNO` varchar(60DEFAULT NULL COMMENT '휴대폰번호',
  `email` varchar(56DEFAULT NULL COMMENT '이메일',
  `access` tinyint(2NOT NULL DEFAULT 0 COMMENT '접근권한:불허(1),승인대기(2),차단(3)',
  `regdate` varchar(12DEFAULT NULL COMMENT '가입일자',
  `regtime` varchar(10DEFAULT NULL COMMENT '가입시간',
  `access_date` date DEFAULT NULL COMMENT '최근접속일자',
  `access_failed_count` tinyint(4NOT NULL DEFAULT 0 COMMENT '로그인실패횟수',
  `display` tinyint(2NOT NULL DEFAULT 1 COMMENT '숨김(0) 보임(1)'
ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
--
-- Indexes for table `members`
--
ALTER TABLE `members`
  ADD PRIMARY KEY (`idx`),
  ADD UNIQUE KEY `userID` (`userID`);
 
--
-- AUTO_INCREMENT for table `members`
--
ALTER TABLE `members`
  MODIFY `idx` int(11NOT NULL AUTO_INCREMENT;
COMMIT;

 

Hash 와 SALT 개념은 https://st-lab.tistory.com/100 에 잘 설명되어 있더라.

코드가 Java 코드 예시이긴 해도 개념 이해하는데 이보다 훌륭한 자료 찾기는 쉽지 않을 듯 싶다.

블로그 이미지

Link2Me

,