처음 로깅을 시도한 시간을 저장하고 10 분이 지나지 않아 10 분이 지나면 IP 주소를 금지하면 무차별 공격과 DDoS 공격을 막을 수 있습니까? 실생활에서 사용자가 1 분에 10 번 이상 잘못된 주소를 입력 할 수 있습니까?무차별 공격과 ddos에 대해 10 요청/분?
편집 : 아마도 10 req/m 이후에 사용자/ip를 차단하면 10 번의 잘못된 시도 이후 표준 블록보다 시스템이 훨씬 안전 해집니다.
처음 로깅을 시도한 시간을 저장하고 10 분이 지나지 않아 10 분이 지나면 IP 주소를 금지하면 무차별 공격과 DDoS 공격을 막을 수 있습니까? 실생활에서 사용자가 1 분에 10 번 이상 잘못된 주소를 입력 할 수 있습니까?무차별 공격과 ddos에 대해 10 요청/분?
편집 : 아마도 10 req/m 이후에 사용자/ip를 차단하면 10 번의 잘못된 시도 이후 표준 블록보다 시스템이 훨씬 안전 해집니다.
나는 감지 방법이 아주 정확하다고 생각합니다. 사용자가 분당 10 번 로그인을 시도하면 여기에 잘못된 것이 있습니다. 사용자가 너무 참을성 열 배는 그냥 "로딩 더 빠르게"를 클릭
는하지만 당신은 있는지 확인해야합니다. JavaScript로 로그인 버튼을 비활성화해도 사용자가 JS를 비활성화 할 수 있습니다.
내 생각에 DoS 공격을 시도하는 경우 대책이 없습니다. 그가 서버를 중단하려고하기 때문에 어떤 쿼리를 작성해도 상관 없습니다. 그리고 그는 다른 IP를 가진 많은 컴퓨터에서이 작업을 시도 할 것이므로 쉽게 차단할 수 없습니다.
나는 IP 차단이 아무런 보호 장치가 아니므로 사용자가 숨길 게 있음을 확신 할 수 있다고 생각합니다. 당신은 이런 식으로 그를 막을 수 있습니다. 그래서 그는 당신이 생각조차하지 못했던 또 다른 길을 시작할 것입니다. 다른 의견에서 말한 것처럼 사용자는 일시적으로 사용자를 차단해야합니다 (IP를 기록 할 수 있습니까?). "내부 서버/데이터베이스 오류입니다. 잠시 기다려주십시오."와 같은 메시지를 표시합니다.
전세계의 가장 큰 회사의 모든 주요 사이트는 아무도 차단하지 않습니다.
마지막으로 질문에 대답하십시오. 예,이 방법을 사용하면 시스템이 단기간에 안전 해 지지만 사용자는 차단 된 것을 알 수 없습니다.
감사합니다. @Voitcus IP 차단 아이디어를 제거합니다.하지만 IP 이전에 사용자가 차단 한 경우 사용자가 차단하면 잘못된 사용자 이름/비밀번호를 얻을 수 있습니다. 잘못된 시도가 있지만 올바른 비밀번호를 입력하면 차단을 해제하는 옵션으로 너무 많은 시도가 차단되어 자신의 계정이 차단되었다는 메시지를 받게됩니다. 이는 사용자와 가능한 공격에 도움이됩니까? – lesandru
나는 그것이 안전하다고 생각하지만, 이것은 사용자 경험의 관점에서 불공평 할 수있다. 누군가 내 로그인을 사용하여 사이트를 침입 한 경우 왜 암호를 변경해야합니까? 그것은 내 잘못이 아니며 당신의 보안 허점에 관심이 없습니다. 누군가 다른 사람을 차단하기 위해이 방법을 사용할 수 있습니다. 사용자가 2 ~ 5 분 또는 10 분 동안 로그인하지 못하게하면 충분하지만 일부 기술적 인 이유 때문에 충분하다고 생각합니다. – Voitcus
PHP에서 무차별 대항 공격 방어를 담당하는 클래스를 만들었습니다.
https://github.com/ejfrancis/BruteForceBlocker
이는 DB 테이블에 사이트 전체의 모든 로그인 실패를 기록하고 (어떤 시간 프레임 당신이 선택하거나) 지난 10 분 동안 실패한 로그인 횟수에 설정된 한도를 초과하는 경우 (도 선택), 다시 로그인하기 전에 시간 지연 및/또는 보안 문자 요구 사항을 적용합니다.
예 :
// 스로틀 설정 배열을 구축 할 수 있습니다. (# 최근 로그인 실패 => 응답).
$ throttle_settings =
50 => 2, //delay in seconds 150 => 4, //delay in seconds 300 => 'captcha' //captcha
];
$ BFBresponse = BruteForceBlocker :: getLoginStatus ($ throttle_settings);
// $ throttle_settings는 선택적 매개 변수입니다. 가 포함되어 있지 않은 경우, BruteForceBlocker.php의 기본 설정 배열은
스위치 ($ BFBresponse [ '상태']) {
case 'safe': //safe to login break; case 'error': //error occured. get message $error_message = $BFBresponse['message']; break; case 'delay': //time delay required before next login $remaining_delay_in_seconds = $BFBresponse['message']; break; case 'captcha': //captcha required break;
}
가 아니, 난 그렇게 생각하지 않는다 사용됩니다. – BlitZ
물건을 안전하게 만들기 위해 ** 아무 것도 ** 충분하지 않습니다. 얼마나 중요한지 생각해야합니다. (사이트가 얼마나 중요하고 적을 가지고 있는지). – ncm
DDoS 공격에 대해서는 별 도움이되지 않습니다. – Lidor