2009-10-27 1 views
3

나는 보안의 측면에서 많은이 하나레일 로그인 시도를 제한해야합니까?

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

처럼, 루비 온 레일즈의 로그인 시스템을 구축에 대해 생각하고, 나는 사용자가 그들의 이름을 얻을 경우 로그인해야 할 수있는 시도를 제한해야 잘못된? 또한

, 로그인의 기본 단계는 것 같다 :

  • 데이터베이스
  • 사용자 이름 및 암호 인증 된 경우에 그에 대한 사용자 이름과 암호를 인증, 필터 전에 세션 변수
  • 을 만들 수 있도록 페이지 로그인 필요가 보호됩니다.

내가 고려해야 할 사항이 있습니까?

답변

8

예 예 (세션 당)가 아닌 로그인 당 시도 횟수를 제한하면 보안이 강화됩니다.

레일즈에 이미 여러 인증 시스템이 있다는 것을 알고 계십니까? 바퀴를 재발 명할 필요가 없습니다.
다음은 전체 목록입니다. AuthLogic

  • Restful Authentication
  • 당신이 어떤을 사용하지 않으려면, 당신은 그들이 무엇을하고 있는지에 대한 예를 취할 수 Clearance

    • .

      편집 2013
      위에서 제공하는 라이브러리는 더 이상 최신 아니며, 나는 새로운 응용 프로그램을 사용하여 운영자 추천 할 수 없었다. devise을보세요.

  • +3

    "IP 당"이 여기에 중요합니다. 이 기능이 없으면 사용자에 대한 사소한 서비스 거부 공격이 도입되었습니다. –

    +3

    도 있습니다. http://github.com/plataformatec/devise/ – Mike

    +0

    authlogic 링크가 잘못되었습니다. http://github.com/binarylogic/authlogic이어야합니다. – Jim

    0

    또 다른 고려 사항은 DoS 공격입니다. 동적 페이지에 대한 요청 수를 적당한 비율 인 으로 제한하면 악의적 인 사용자가 사이트를 무너 뜨리는 것이 더 어려워집니다. 암호 해독 문제를 해결하는 동안 사용자가 의도하지 않은 방식으로 사이트 데이터를 조작하지 못하게하여 보안 위험을 초래할 수 있습니다 (데이터 손상 등).

    이 접근 방식을 사용하기로 결정한 경우, 직접로드하는 대신 잘 지원되는 모듈을 찾아서 시도해야합니다.

    1

    다른 방법으로 랙을 사용할 수 있습니다. IP가 로그인 시도를 데이터베이스, memcached, redis, tokyo 캐비닛 등에 저장하는 일정 시간 동안 로그인 페이지를 방문하는 횟수를 추적 할 수 있습니다. 그런 다음 사용자가 페이지 집합에 대한 액세스를 거부하면 사용자 액세스가 거부됩니다 정의 된 시간 간격에 대한 할당량.

    Damien은 Authlogic을 제안했습니다. Authlogic은 내가 좋아하는 인증 시스템입니다. 그것은 매우 포괄적이며 적응력이 있습니다. Authlogic을위한 기존의 모듈이 많이 있으며, Authlogic을 사용하기 위해서는이 중 하나를 활용할 수있을 것입니다.

    2

    먼저 IP 당 로그인 페이지의 속도를 제한하십시오.로그인 페이지에서 invisible captcha system을 사용하십시오. 그런 다음 IP 당 로그인 제한을 두어야하지만 여러 IP에서 무차별 공격으로부터 봇넷을 막으려는 최후의 수단으로 사용자 당 로그인 제한을 두어야합니다. 자신의 비밀번호를 무단으로 유포하려는 시도가 감지되면 사용자에게 전자 메일을 보냅니다. 누군가가 여러 IP에서 시도한다면 반복적 인 이메일을 보내지 마십시오. 봇넷 (botnet)은 심각한 스팸을 일으킬 수 있으며, 나쁜 메시지는 스팸 폴더에 저장됩니다. 암호를 변경하거나 강도를 업그레이드하고자 할 수도 있습니다.

    IP 로그인 제한을 설정 한 경우 제한을 높게 설정하십시오. 많은 장소에서 3 개의 스트라이크를 사용하면 나갈 수 있습니다. 그것은 어려운 일이며 사용자에게 친숙하지 않습니다. 그것은 적어도 10 개 이상 현실적이어야하고, 당신이 그것을 명중 할 때, 당신은 "고객 지원 전화"금지보다는 오히려 시간 근거한 금지를 얻어야한다. 아무도 암호를 10 회 시도 할 때 무차별 공격을 시도하지 않습니다. 따라서 IP 당 로그인 제한은 10이고 사용자 당 로그인 제한은 1,000에서 10,000 사이입니다 (서비스 거부 공격을 막을만큼 충분히 높지만 봇넷이 암호를 아직 크랙하지 않았을만큼 충분히 낮음) . 당신은 sysadmin/on-call 호출기에 대한 경고의 형태를 취해야한다. (모든 사용자와 개별 사용자에 대해 실패한 로그인 수를 유지하고 롤링 평균을 수행하며 임계 값을 초과하는 경우 경고합니다. 사용자 목록이 충분히 큰 경우 전체에서 적어도 하나의 계정에 대해 성공할 확률 사용자 기반은 하나의 계정 만 공격하여 성공할 확률과 거의 같습니다.)

    방화벽에서 명백한 공격자를 차단합니다. 잠시 후 만료하십시오. 고객 지원 부서에서 누군가를 해산 할 수 있도록해야하지만 금지 조항이 어떻게 든 범죄와 관련이 있는지 확인해야합니다. 20 가지의 다른 사용자 로그인을 망가 트려는 사람을 단호하게해서는 안됩니다. 물론 봇넷에 의해 인수 된 할아버지 나 할머니가 아닌 스크립트 대본이 IP 차단을 확실히받을 수 있기 때문에 물론 여기에서 판단하십시오.

    실제로이 모든 작업을 수행 할 수있는 경우 일급 로그인 양식을 사용하게됩니다. 네가 그렇게 많이 필요하다고 생각하지 않는다.