나는 ExpressJS에 익숙하지 않고, (데이터베이스에 저장된) 그의 ip에 대한 로그인 실패 횟수가 허용 된 최대 숫자를 초과하면 사용자와의 연결을 끊을 필요가 있지만 어떻게해야하는지 문서를 찾을 수 없다. 이 작업을 수행. 그것은 server.close()
처럼 보이지만, 이해할 수 있듯이 일부 연결뿐만 아니라 전체 서버를 닫습니다. 그렇다면 ExpressJS 미들웨어에서 연결을 끊는 방법은 무엇입니까?ExpressJS 접속 끊기
답변
ExpressJS는 HTTP (S) 요청을 처리하는 브라우저에 연결을 제공하지 않으므로이를 삭제할 방법이 없습니다. 소켓 (Sockets)은 제공하지만, 당신의 경우는 그렇지 않다고 가정합니다.
이 경우 '최대 로그인 시도 횟수에 도달했습니다.'와 같은 메시지로 응답을 보낼 수 있습니다. * 분 후에 다시 시도하십시오. ' 로그인 폼을 숨길 수도 있습니다.
NodeJS에서 소켓을 사용할 수 있습니까? – snowfinch27
여기에 멋진 lib가 있습니다. [socket.io] (http://socket.io/). 그러나 어떤 목적으로 소켓이 필요합니까? –
실패한 로그인 수 (데이터베이스)를 기반으로 단일 사용자와의 연결을 닫을 필요가 있습니다. 이제는 다른 방법을 찾아 낼 수 없습니다. – snowfinch27
"드롭"연결을 사용하는 다른 방법은 즉시 res.end()
을 호출하여 빈 응답을 보냅니다.
유일한 단점은 요청이 이전 미들웨어를 통과하므로 미들웨어를 대상으로하는 DoS 공격으로부터 보호 할 수 없으며 DDoS 공격의 경우 전체 연결을 삭제하는 것보다 효과적이지 않을 것이라는 단점이 있습니다. .
- 1. expressjs
- 2. 접속 요소
- 3. 전화 접속 TAP 연결을 끊는 AT 명령
- 4. Iframe 끊기
- 5. 끊기 후크
- 6. 문자열 끊기
- 7. 은 expressJS
- 8. 왜 Expressjs
- 9. ExpressJS 설치
- 10. ExpressJS : Server.close();
- 11. expressjs 변수보기
- 12. Expressjs : 옥
- 13. 에 접속 모듈은 nodeJS
- 14. 접속 페이스 북 사진
- 15. 접속 월 달력보기
- 16. 다중 접속 Acess
- 17. 의 FTP 접속 오류
- 18. 무제한 인터넷 접속 확인
- 19. PHP는 데이터베이스 접속 기능
- 20. 접속 후 * PTR1 ++ = * PTR2 ++
- 21. 연산 토끼 접속 차단은
- 22. roundcube 플러그 접속 식
- 23. 다중 접속 이미 database.php이을
- 24. SQL 서버에 접속 행
- 25. Citrix 원격 연결 끊기/원격 연결 끊기 소스
- 26. socket.io 연결 끊기 이벤트, 클라이언트 연결 끊기 감지
- 27. Android TTS 사운드 끊기
- 28. 외부에서 루프를 끊기
- 29. 다른보기를 포함하는 텍스트 끊기
- 30. SignalR의 $ destroy시 연결 끊기
사용자가 데이터를 보낼 수있는 것은 아니지만 'res.end'를 직접 호출하면 응답이 "빈"html 파일이되어 거의 동일한 효과가 나타납니다. – DrakaSAN
@DrakaSAN 덕분에, 그것은 정말로 효과가 있으며, 내가 필요한 것일 수도 있습니다. – snowfinch27
마지막으로 실패한 시도에서 클라이언트를 쿠키로 만들었습니다. 그런 다음 쿠키를 확인하고 DrakaSAN이 제안한대로 사용자 정의 미들웨어를 추가하십시오. 즉, DB에 쿼리를 스팸하지 않고도 복잡한 요청 처리를하기 전에 미들웨어를 넣을 수 있습니다. 물론 클라이언트가이를 차단하거나 수동으로 지울 수 있기 때문에 유일한 수표가되어서는 안됩니다. 그냥 생각. – Mic