드로우홀릭 더베이직

돌직구님께서 저술한 2013무따기로 하나 하나 열심히 익혀가고 있는 독자입니다.

책 앞 부분에 로그인 기능을 구현하는 내용이 있습니다. 책 제목처럼 무작정 책 따라서 열심히 만들다보니, 로그인 기능은 구현이 되었는데....

어찌된 일인지, "사용자1"로 로그인이 되어 있는 상태에서 다른 PC에서 "사용자1" 아이디로 로그인을 하면 아무렇지도 않게 그대로 로그인이 돼버립니다.

이게 정상은 아닌 거죠??

책을 여러번 정독해봤는데, 제가 잘못 따라한 것은 없는 것 같습니다.

이 허술한 로그인 시스템을 방지할 방법이 필요합니다. 

제가 무엇을 간과하고 있는지,해답을 좀 알려주시면 고맙겠습니다.


profile

돌직구

2019.06.05 16:11:14
*.165.242.137

'사용자1'로 로그인이 되어 있는 상태에서, 다른 PC에서 '사용자1' 아이디로 로그인을 하면 로그인이 된다.

--> 이것이 문제라고 하셨는데요..


대부분의 업무 시스템에서 이러한 로그인 체계를 '문제'라고 하지 않습니다.

즉, 정상이라는 것이죠.


그것을 방지하려면, 꽤 복잡한 작업을 처리해야 합니다.


논리적으로 생각해 보자면..


접속상태를 관리하는 테이블이 있어야 합니다.

예를 들면 다음과 같습니다.


LoginID   StartTime   EndTime
--------------------------------------
user1     09:00       09:10
user2     09:00       
user1     09:15

위와 같은 구조를 보면, user1은 9시에 로그인해서 9시 10분에 로그아웃을 하였습니다.

user2는 9시에 로그인해서 계속 사용중인 상태입니다.

user1은 다시 9시 15분에 로그인해서 계속 사용중인 상태입니다.


여기에서 우리는 다음을 알 수 있습니다.

  1. 사용자가 로그인하고, 로그아웃할 때, 이 테이블에 값을 기록해 두어야 한다.
  2. EndTime에 값이 비어 있으면, 현재 사용중인 데이터이다.

이런 원칙이 섰다면, user1이 로그인할 때, 'EndTime'이 비어있는 데이터가 존재하면 로그인을 막으면 됩니다.


그러나, 로그인/로그아웃 할 때.. 이런 처리를 매 번 해 줘야 한다는 것이 꽤 번거로운 작업이죠.

무엇보다 문제는.. 어떤 문제로 인해 로그아웃하지 않고 강제 종료되었을 때..

그 사용자는 다시 로그인하지 못 하게 됩니다.


이런 이유로 대부분의 시스템에서는, 중복 로그인을 막지 않습니다.


다시 한 번 중복 로그인이 필요한 지 생각해 보시고, 필요하다면, 위 내용을 구현하시면 됩니다.

 

List of Articles
번호 제목 글쓴이 날짜 조회 수sort
공지 FAQ: 어떤 과정을 수강하는 것이 좋을까요? 외 돌직구 2017-08-29 31948
공지 좋은 답변을 이끌어 내는 방법 [1] 돌직구 2017-07-14 28082
공지 액세스 Q/A 게시판 형식을 변경합니다. 돌직구 2014-09-10 23141
520 특정 테이블의 필드 값을 다른 테이블로 옮기는 작업 1 1 thedream77 2014-12-18 45893
519 하나의 폼에서 데이터 입력 및 조회 구현 file 1 park 2018-08-22 45616
518 한 필드에서 여러개의 같은 데이터중 한개의 데이터만 가져오는 방법 2 백두산 2020-06-05 43169
517 추가쿼리에서 키위반 오류 문의드립니다 file 3 1 박형근 2022-07-17 36374
516 엑세스로 재고관리대장을 만들계획입니다. 2 1 똥구녕멍멍 2019-04-18 32615
515 외부데이터 "가져오기 오류 - 형식변환실패"의 의미는~? file 1 1 방랑김사깟 2017-02-19 32276
514 액셀의 데이타(하이퍼링크)를 복사해서 기존의 액세스 테이블에 붙이기 file 3 1 광야에서살아남기 2015-08-21 31348
513 이벤트 에러 file 4 1 엑세스29 2017-06-15 29730
512 엑세스 데이터베이스 일관성 에러 문의 1 박상순 2021-02-22 28692
511 목록상자 클릭시 클릭한 COL, ROW의 값 vb로 받아오기 2 쐬주도사 2017-12-15 28305
510 메시지박스의 체크박스로 테이블의 체크박스 컨트롤하기 1 공잇 2016-04-07 28028
509 엑셀파일 불러오기 오류 문의 file 3 기영주 2016-02-16 27726
508 vba에서 날짜 포멧 변환 질문드립니다. 1 1 쐬주도사 2017-12-18 27238
507 액세스 데이터베이스 딜레이 및 멈춤 문제 file 1 3 전맥 2016-10-11 26731
506 리스트박스의 선택된값을 해제 하려면 어떻게해야하나요, 1 김은교 2016-01-16 26139
505 통화 필드에 단위($ 또는 \)표시가 저장 안 되게 할 수 있을까요? 3 클로이 2019-07-04 26089
504 입력식에 유호하지 않는 날짜값이 있습니다. 2 sky3300 2019-03-26 25201
503 사진이나 그림 삽입 방법 1 notebook01 2016-05-01 24998
502 액세스 DB 파일 용량 문제 문의 드립니다. 4 바남풍 2019-08-26 24997
501 텍스트 가져오는 데 문제가 생겨요. 1 당연히나지 2021-01-24 24448


  주소  12925 경기도 하남시 미사대로 540, B동 917호 (현대지식산업센터 한강미사2차) ㈜팀데이터이십일  |  고객센터 전화번호  02-467-2998  |  대표이사  염기웅
개인정보관리책임자  염기웅 (ml_privacy@td21.com)  |  사업자등록번호  120-86-79260  |  통신판매업신고번호  제 2021-경기하남-1166 호  [사업자 정보 확인]
  TD21의 사전 서면 동의 없이 TD21 사이트 일체의 정보, 콘텐츠 및 UI 등을 상업적 목적으로 전시, 전송, 스크래핑 등 무단 사용할 수 없습니다.