2011-02-28 2 views
1

로그인 시스템을 구현했습니다. 사용자 시스템에서 3 회 이상 실패한 후 ($_SESSION 개의 변수 사용) 쿠키가 사용자 컴퓨터에 생성되고 10 분 후에 만료됩니다. 이제 쿠키를 삭제할 수 있기 때문에 이것이 충분하지 않다는 것을 알고 있습니다. 자, 제가 알고 싶은 것은 IP의 & 사용자 이름 콤보를 통해 잘못된 로그인을 캡처하기 위해 테이블을 구현할 때 언제이 테이블이 지워지나요? 차단 시간이 만료 된 후 사용자가 성공적으로 로그인하면?BFA의 로그인을 제한하려고 시도합니다.

이 테이블에 1000 개의 항목이 채워지겠다고 가정하면 자동으로이 항목을 지우려면 어떻게해야합니까? 테이블의 구조는 무엇입니까?
4 필드 :

나는이 제안 ID, IP, (이메일 주소가됩니다) 사용자 이름, block_time (시간 사용자가 다시 로그인 할 수 있습니다)?

답변

1

첫 번째 로그인 실패 후 레코드를 만들고 로그인이 성공하면 레코드를 제거 할 수 있습니다.
두 번째 접근법은 "수정 된"열을 작성하고 일부 php-cron 스크립트를 사용하여 제거하는 것입니다.

INSERT INTO user_logins(user_hash, time) VALUES(?,?) 
ON DUPLICATE KEY UPDATE time = now() 

물론 기본 키는 user_hash입니다.

+0

내 계획이지만 이런 복잡한 로그인 시스템을 한 번도 해보지 않았습니다. –

+0

나는 이것이 복잡 할 것이라고 생각하지 않는다. 사용자 IP와 어쩌면 사용자 이름을 기반으로 해시를 만들고 로그인에 실패하면 데이터베이스에 추가하고 두 번째 로그인 후에는 사용자 레코드를 업데이트 한 다음 로그인 성공 후 user_hash = 해시 ($ userIp. $ userName). – mailo

+0

감사합니다. –

관련 문제