PHP에서 다른 사용자에게 영향을 주지 않고 특정 사용자에게만 응답을 지연시키는 것이 가능합니까?

WBOY
풀어 주다: 2016-08-04 09:19:48
원래의
974명이 탐색했습니다.

최근 해당 프로젝트에 대한 악의적인 비리 의혹이 제기되고 있어 누군가 부정 행위가 의심될 경우 답변을 늦출 예정입니다. 하지만 다른 사람의 접속 속도에 영향을 주어서는 안 됩니다. 내가 아는 한, PHP는 각 요청에 대해 스레드를 엽니다. 예를 들어 동시에 1,000개의 방문이 있으면 인터페이스 응답이 느려질 것입니다. 그 중 999개에 대해서만 이 지연 응답 방법을 사용했습니다. 요청이 더 빨라지나요? 아직도 같은 속도인가요?

현재 생각나는 방법은 수면밖에 없는데 믿을만한지 모르겠네요...


이미 사용자를 식별할 수 있는 방법이 있는데, 알고 싶은 것은 사용자의 요청을 지연시키는 방법입니다


답변에서 친구가 http 오류 코드를 반환한다고 언급했습니다. 이는 가능하지만 주로 IP와 식별 코드를 판단하는 방법을 제한합니다. 이 두 가지는 IP가 변경되는 경우 언제든지 변경될 수 있습니다. , 나는 그의 IP만 제한된다는 것을 알고 있습니다. 그 후 그는 언제든지 자신의 식별 코드를 브러싱하고 변경하기 위해 동적 IP를 사용하면 되며 계속해서 내 인터페이스를 브러싱할 수 있으며 지연된 반환은 다음과 같은 것으로 간주됩니다. 그가 만족하는 한 서버가 다운되었습니다.

답글 내용:

최근 해당 프로젝트가 악의적인 비리 의혹을 받고 있는 만큼, 누군가 부정행위를 하고 있는 것으로 의심되면 답변을 늦출 계획입니다. 하지만 다른 사람의 접속 속도에 영향을 주어서는 안 됩니다. 내가 아는 한, PHP는 각 요청에 대해 스레드를 엽니다. 예를 들어 동시에 1,000개의 방문이 있으면 인터페이스 응답이 느려질 것입니다. 그 중 999개에 대해서만 이 지연 응답 방법을 사용했습니다. 요청이 더 빨라지나요? 아직도 같은 속도인가요?

현재 생각나는 방법은 수면밖에 없는데 믿을만한지 모르겠네요...


이미 사용자를 식별할 수 있는 방법이 있는데, 알고 싶은 것은 사용자의 요청을 지연시키는 방법입니다


답변에서 친구가 http 오류 코드를 반환한다고 언급했습니다. 이는 가능하지만 주로 IP와 식별 코드를 판단하는 방법을 제한합니다. 이 두 가지는 IP가 변경되는 경우 언제든지 변경될 수 있습니다. , 나는 그의 IP만 제한된다는 것을 알고 있습니다. 그 후 그는 언제든지 자신의 식별 코드를 브러싱하고 변경하기 위해 동적 IP를 사용하면 되며 계속해서 내 인터페이스를 브러싱할 수 있으며 지연된 반환은 다음과 같은 것으로 간주됩니다. 그가 만족하는 한 서버가 다운되었습니다.

HTTP 104 상태 코드(전설적인 "연결 재설정")를 보냅니다.

<code>$Code = 104;
$Text = 'connection reset by peer';
http_response_code($Code);
$Protocol = (isset($_SERVER['SERVER_PROTOCOL']) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.1');
header($Protocol . ' ' . $Code . ' ' . $Text);</code>
로그인 후 복사

물론 Nginx는 이를 수행할 수 있습니다. 444(서버 시간 초과 응답) 또는 499(클라이언트가 기다릴 수 없으며 연결을 적극적으로 닫음)를 전송하고 IP를 결정한 다음 return 444;.

잠자기 방법은 신뢰할 수 없습니다. 잠자기 후에는 다른 요청에 대한 서비스를 제공할 수 없습니다. PHP 프로세스가 너무 많아서 차단 작업이 처리량에 영향을 미칠 수 있습니다. 어떻게 잠을 잘 수 있습니까?
반납 지연 계획에는 또 다른 문제가 있습니다. 악의적인 브러시이기 때문에 동시에 여러 요청을 보낼 수 있는 방법이 있어야 하므로 지연 반납이 근본적으로 요청 수를 줄일 수는 없지만, 서버의 요청 백로그. 자신의 클라이언트나 웹페이지를 사용하는 경우 "악성"이 발생하기 어렵습니다.
반환을 지연하고, 요청을 비동기적으로 반환하고, 어쨌든 프로세스를 차단하지 않는 방법도 있습니다.
결론적으로 윗층에 4xx 주는게 낫습니다.

그냥 물어보니 IP 주소를 아시나요?

접속 빈도 제한

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿