2013-02-07 2 views
10

나는 노드 j를 사용하여 매우 확장 가능한 브라우저 기반 웹 채팅 서버를 작성하는 중입니다. 관련된 개념은 간단합니다. 먼저 브라우저에서 웹 소켓 지원을 확인합니다. 지원되지 않거나 서버 사양과 호환되지 않으면 정상적으로 긴 폴링으로 정상적으로 다운 그레이드됩니다.DOSJ 공격에 대한 nodejs 서버

매우 높은 I/O 모델을 이용하여, 이처럼 일하기 위해 nodejs와 같이 잘 맞는 다른 프레임 워크를 찾을 수 없었습니다. 그러나 나는 간단한 해결책을 내놓기로 결정한 DOS 공격과 관련된 문제가 있습니다. 그러나, 나는 그 엄청난 홍수 발작들과 싸울 수있는 가장 이상적인 방법 일지 잘 모르겠습니다.

내가 할 계획은 - 하나의 IP 주소에서 시작된 50 개 이상의 요청이 특정 시간 (예 : 1 초) 내에 서버에 도달 한 다음 해당 IP에서 이후의 모든 요청을 거부 할 경우 해당 특정 시간 간격이 경과되면서 계속됩니다.

괜찮습니까?

+0

+1 - 아마 나는 보지 않았지만 아무도 노드 DoS 공격의 문제에 많은 관심을 보이지 않는 것 같습니다. – Bojangles

+0

내가 알아 낸 한 가지 사실은 setTimeout 함수를 사용하여 모든 들어오고 나가는 연결의 시간 제한을 낮추는 것입니다. 기본값은 2 분입니다. 무언가 잘못되면, 그냥 두 버려야 할 때 주변에 연결 리소스를 두어야합니다. 10-20 초가 훨씬 효과적입니다. – download

답변

5

많은 수의 IP가 사용되는 DDOS 공격 - 분산 서비스 거부 - 공격과 관련된 컴퓨터와 동일한 방화벽 내부에있는 일부 컴퓨터의 서비스를 계속해야하는 경우.

종종 DDOS에서 사용되는 기계는 대체 된 좀비 기계입니다. 큰 대상에 대한 DDoS가 시작되면 IP 단위 제한이 같은 방화벽으로 연결된 모든 LAN을 금지 할 수 있습니다. 예를 들어 New York Times의 컴퓨터가 DDOS에 감염되어 사용되고있을 때 대기업의 경우 실제로 나쁜 PR을 유발할 수 있으며 Times의 기자는 회사의 웹 사이트가 다운되었는지 확인하고 차단되어 공격은 실제보다 훨씬 성공적이었습니다.

DDoS가 발생하더라도 서비스를 계속 제공하려면 IP뿐만 아니라 요청 자체의 공통 요소를 기반으로 요청을 차단해야합니다. security.se은이를 수행하는 방법에 대한 구체적인 조언이 될 수 있습니다.

+0

사실, 서버는 고유의 원점입니다. 즉, 서버에 이미 지정된 도메인 이외의 도메인에서 들어오는 요청은 완전히 거부됩니다. 만약 이것이 의미가 있다면! – spaceman12

+0

@ spaceman12, "origin origin"이 의미하는 바를 확장 할 수 있습니까? 서버가 IP 허용 목록에없는 그룹의 요청을 이미 거부하고 해당 시스템의 전복 또는 오작동에 대해 걱정하고 있다는 뜻입니까? –

+0

'origin specific'에 의해, 이것은 실제로 브라우저 기반 웹 응용 프로그램이기 때문에 서버는 특정 도메인 (헤더의 원점)에서 오는 요청에만 서비스를 제공하려는 의도로 작성되었습니다. 예를 들어 stackoverflow.com에서 오는 요청에만 서비스를 제공하고 다른 서비스는 무시합니다. – spaceman12