문제

나는 Ruby on Rails의 로그인 시스템을 구축 할 생각입니다.

http://visionmasterdesigns.com/tutorial-create-a-login-system-in-ruby--rails/

보안 측면에서 사용자가 사용자 이름이 잘못되면 로그인해야 할 시도를 제한해야합니까?

또한 로그인의 기본 단계는 다음과 같습니다.

  • 데이터베이스의 사용자 이름과 비밀번호를 인증합니다
  • 정품 사용자 이름과 비밀번호 인 경우 세션 변수를 만듭니다.
  • 필터 전에 페이지 로그인이 필요합니다.

내가 고려해야 할 다른 것이 있습니까?

도움이 되었습니까?

해결책

예, IP 당 로그인 시도 횟수 (세션 당 아님)가 보안을 증가시킵니다.

레일이있는 여러 인증 시스템이 이미 있다는 것을 알고 있습니까? 바퀴를 재창조 할 필요가 없습니다.
다음은 철저한 목록입니다.

사용하고 싶지 않다면 그들이하고있는 일에 대한 예제를 취할 수 있습니다.

2013 년 편집
위에 제공된 라이브러리는 더 이상 최신 상태가 아니며 새로운 응용 프로그램에서 사용할 수 없었습니다. 보세요 유증.

다른 팁

먼저 IP 당 로그인 페이지를 속도 제한하십시오. an을 사용하십시오 보이지 않는 볼트 차 시스템 로그인 페이지에서. 그런 다음 IP 당 로그인 제한을 넣어야하지만 여러 IP의 무차별 대결에서 봇넷을 중지하기 위해 사용자 당 로그인 제한을 최후의 수단으로 설정해야합니다. 암호를 무차별하려는 시도가 감지되면 사용자에게 이메일을 보내십시오. 누군가가 다른 IPS에서 시도하는 경우 반복적 인 이메일을 보내지 마십시오. 봇넷은 그렇지 않으면 심각한 스팸을 수행 할 수 있으며, 더 나쁜 것은 스팸 폴더에서 중요한 메시지를 유발합니다. 비밀번호를 변경하거나 강도를 업그레이드하고 싶을 수도 있습니다.

IP 로그인 제한을 입력하면 한계를 높이십시오. 많은 곳이 세 번의 파업을 사용하고 당신은 외출합니다. 그것은 견과류와 사용자 친화적입니다. 현실적으로 10 개 이상이어야하며,이를 때리면 "전화 고객 지원"금지 대신 시간 기반 금지를 받아야합니다. 아무도 10 번의 시도로 암호를 무차별하지 않을 것입니다. 따라서 10의 PER-IP 로그인 제한과 1,000에서 10,000 사이의 사용자 당 로그인 한계를 권장합니다 (서비스 거부 공격을 좌절시키기에 충분히 높지만 봇넷이 아직 비밀번호를 깨뜨릴 수 없을 정도로 낮습니다). . sysadmin/on-call 호출기에 어떤 형태의 경고가 있어야한다.하지만 그 임계 값을 누르기 오래 전에 트리거하는 봇넷이있다. (모든 사용자 및 개별 사용자에게 실패한 로그인을 유지하고, 롤링 평균을 수행하고, 임계 값을 넘어서도 경고하십시오. 누군가가 충분히 큰 사용자 목록을 가지고 있다면 전체 전체에 걸쳐 하나 이상의 계정에 대한 성공 확률이 있습니다. 사용자 기반은 하나의 계정 만 공격하여 성공할 확률과 거의 동일합니다.)

방화벽에서 명백한 공격자를 차단하십시오. 잠시 후에 금지를 만료하십시오. 고객 지원이 누군가를 대답 할 수 있도록해야하지만 금지령이 어떻게 든 범죄와 관련이 있는지 확인하십시오. 20 개의 다른 사용자 로그인이나 무언가를 깨뜨리려고 시도한 사람을 해제해서는 안됩니다. 물론 여기서 판단하십시오. 봇넷에 의해 인수 된 사고 방식이 아닌 가족과 할머니가있는 스크립트 어린이는 확실히 IP 금지를받을 수 있기 때문입니다.

실제로 모든 작업을 수행 할 시간이 있다면 일류 로그인 양식이 있습니다. 나는 당신이 그렇게 많이 필요하다고 의심합니다.

당신이 할 수있는 또 다른 방법은 랙입니다. 데이터베이스, Memcached, Redis, Tokyo Cabinet 등에 로그인 시도를 저장하는 일정 시간 동안 IP가 로그인 페이지를 방문하는 횟수를 추적 할 수 있습니다. 정의 된 시간 간격에 대한 할당량.

Damien은 Authlogic을 제안했습니다. authlogic 레일에 가장 좋아하는 인증 시스템입니다. 매우 포괄적이고 적응력이 있습니다. AuthLogic을위한 기존 모듈이 많이 있으며,이 중 하나를 활용하여 AuthLogic 작업을 수행 할 수 있다고 확신합니다.

또 다른 고려 사항은 서비스 거부 공격입니다. 동적 페이지로 요청 수를 합리적인 요율로 제한 더 어렵게 만들어야합니다 악의적 인 사용자가 귀하의 사이트를 중단 할 수 있습니다. 비밀번호 크래킹 문제를 돕는 동안 사용자가 의도하지 않은 방식으로 사이트 데이터를 조작하는 것을 방지하여 보안 위험이 발생할 수 있습니다 (아마도 데이터의 손상을 통해).

이 접근법을 사용하기로 결정한 경우 (자신의 롤링하는 대신)이 작업에 도움이되는 잘 지원되는 모듈을 찾아야합니다.

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