반복 된 로그인 요청을 차단하는 가장 좋은 방법 데이터베이스를 사용하지 않습니까?

StackOverflow https://stackoverflow.com/questions/1001963

  •  05-07-2019
  •  | 
  •  

문제

공개 웹 사이트 중 하나에 대한 개선 된 비밀번호 재설정 기능을 작성하려고 노력하고 있으며 더 나은 보안 문자 외에도 y 분 미만의 성공 전액이없는 상태로 로그인하려는 사용자 이름을 표시하고 싶었습니다. 첫 번째 생각은 각 시도를 기록한 다음 시간에 최대의 시도 후에 데이터베이스를 갖는 것이 었습니다. 우리는 직원의 관리자로부터 재설정 될 때까지 단순히 계정을 잠그십시오.

SQL을 통한 지속성을 필요로하지 않는 더 나은 접근 방식은 무엇입니까? (쿠키/다른 것?) 존재하지 않으면 어떻게 더 깨끗한 접근법으로 이것을 할 수 있습니까? 어떤 이유로 내 뇌는 오늘 가득 차 있습니다

도움이 되었습니까?

해결책

스로틀링에 대한이 답변을 확인하십시오.
스로틀 로그인 시도

Jeff Atwood는 호기심이 많은 경우 주제에 대한 흥미로운 블로그 게시물을 가지고 있습니다.
http://www.codinghorror.com/blog/archives/001206.html

데이터베이스에 저장하면 지루할 수 있으며 로그인 시도가 실패하여 테이블을 범람하는 것에 대해 걱정하게됩니다. 또한 사용자의 컴퓨터에 무언가를 저장하는 것은 컴퓨터의 모든 파일을 제어 할 수 있기 때문에 까다 롭습니다. 실패한 로그인 카운터를 쉽게 재설정하거나 더 나쁜/악성 데이터를 다시 보낼 수 있습니다.

다른 팁

쿠키 나 세션을 사용하면 쿠키를 제거하여 로그인 시도를 지울 수 있기 때문에 쿠키 나 세션을 사용하는 것은 나빠질 것입니다. 임시 디렉토리에 파일을 사용하여 로그인 시도를 저장할 수 있습니까?

쿠키는 공격자에게 유용하지 않습니다 (쿠키를 제거하거나 보내지 않습니다). 메모리 내 응용 프로그램 상태가 있다면,이를 사용할 수는 있지만 동시성 및 동시성 및 확장 성 문제가 발생하는 것 외에도 메모리를 신속하게 채울 수 있으므로 실제로 조심해야합니다. 잠금. 또한 해당 응용 프로그램 상태는 해당 서버간에 공유되지 않기 때문에 여러 서버에서 실행되는 앱에서는 작동하지 않을 수 있습니다. 데이터베이스에 데이터를 저장하는 것이 나쁜 생각이라고 생각하는 이유는 무엇입니까?

데이터베이스를 사용하고 Memcache를 사용하고 Cron 작업을 설정하여 테이블을 주기적으로 버릴 수 있습니다. 쿠키 나 세션 변수를 사용할 수도 있지만 보안상의 이유로 이에 의존하지는 않습니다.

크래커의 목표는 시스템에 액세스하는 것이 아니라 모든 사람이 사용할 수 없게 만드는 것입니다. 그는 귀하의 사이트에서 특정 사용자를 차단하기 위해 허위 자격 증명으로 기꺼이 로그인하여이를 달성 할 수 있습니다! 데이터베이스 없이는 적절한 솔루션을 찾지 못할 것 같습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top