Home Backend Development PHP Tutorial Simple experience summary of preventing CC script attacks in PHP_PHP tutorial

Simple experience summary of preventing CC script attacks in PHP_PHP tutorial

Jul 13, 2016 pm 05:10 PM
php author about exist attack of Simple Experience summary Script solution question

The author summarized some problems about CC script attacks and some solutions to prevent CC script attacks. Friends in need can refer to it.

1. Log in to the VPS control panel and be ready to restart the VPS at any time.
2. Close the Web Server first. Excessive load will make it difficult to perform subsequent operations, or even prevent you from logging in to SSH.
3. Just in case, remove the set Web Server system from automatically running after startup.
(If you are unable to log in to the system, and the load after restarting is too high and you cannot log in just after booting up, you can contact the administrator to block the IP or 80 port of the VPS on the mother machine, log in to the system using the virtual console on the mother machine, and then Perform operations 2&3 and then unblock)

Two, find out the attacker IP

1. Create the file ip.php in the root directory of the website and write the following content.

The code is as follows Copy code
 代码如下 复制代码


$real_ip = getenv('HTTP_X_FORWARDED_FOR');

if(isset($real_ip)){

shell_exec("echo $real_ip >> real_ip.txt"); 

        shell_exec("echo $_SERVER['REMOTE_ADDR'] >> proxy.txt"); 

}else{ 

        shell_exec("echo $_SERVER['REMOTE_ADDR'] >> ips.txt"); 

echo '服务器受到攻击,正在收集攻击源,请在5分钟后访问本站,5分钟内多次访问本站有可能会被当作攻击源封掉IP。谢谢合作!'; 

?>

$real_ip = getenv('HTTP_X_FORWARDED_FOR');

if(isset($real_ip)){
代码如下 复制代码

rewrite (.*) /ip.php;
Lighttpd规则:


url.rewrite = (

"^/(.+)/?$" => "/ip.php"

)

shell_exec("echo $real_ip >> real_ip.txt");

shell_exec("echo $_SERVER['REMOTE_ADDR'] >> proxy.txt");

}else{

shell_exec("echo $_SERVER['REMOTE_ADDR'] >> ips.txt");


}

echo 'The server is under attack and the source of the attack is being collected. Please visit this site in 5 minutes. Visiting this site multiple times within 5 minutes may be used as an attack source and the IP address will be blocked. Thank you for your cooperation! ';

 代码如下 复制代码
shell_exec("echo $_SERVER['HTTP_HOST'] >> domain.txt");
?> 2. Set up pseudo-static and rewrite all visits to the website to ip.php. Nginx rules:
The code is as follows Copy code
rewrite (.*) /ip.php; Lighttpd rules: url.rewrite = ( "^/(.+)/?$" => "/ip.php" )
3. Start Web Server to start collecting IPs After completing settings 1 and 2, start the Web Server and start recording IP information. The collection time is recommended to be 3 to 5 minutes before shutting down the Web Server again. real_ip.txt, more than 80% of the IPs saved in this file are the same. This IP is the IP of the platform where the attacker carries out the attack. proxy.txt, this file stores the IP address of the proxy server called by the attacker and needs to be blocked. ips.txt, what is recorded here is the IP that does not show the characteristics of the proxy server. Based on the number of visits, it is judged whether it is the source of the attack. 3. Supplement to the previous paragraph If WEB logs are enabled on the VPS, you can check the growth rate of the log files to determine which site is under attack. If logging is not enabled and the number of sites is small, it is also convenient to temporarily enable logging. If logging is not enabled and there are too many sites, you can use a temporary Web Server configuration file without binding a virtual host and set a default site. Then add the following line to ip.php
The code is as follows Copy code
shell_exec("echo $_SERVER['HTTP_HOST' ] >> domain.txt");

Domain.txt will store visited domain names, and sites attacked by CC will account for the vast majority of them.

Four, start blocking IP
Create the file ban.php

$ips = array_count_values(file('ips.txt'));
The code is as follows
 代码如下 复制代码

$threshold = 10;

$ips = array_count_values(file('ips.txt'));

$ban_num = 0;

foreach($ips as $ip=>$num){ 

    if($num > $threshold){ 

                $ip = trim($ip); 

                $cmd = "iptables -I INPUT -p tcp --dport 80 -s $ip -j DROP"; 

        shell_exec($cmd); 

        echo "$ip baned!n"; 

        $ban_num ++; 

        } 

$proxy_arr = array_unique(file('proxy.txt')); 

foreach($proxy_arr as $proxy){ 

    proxy = trim($proxy); 

    $cmd = "iptables -I INPUT -p tcp --dport 80 -s $proxy -j DROP"; 

    shell_exec($cmd); 

    echo "$proxy baned!n"; 

    $ban_num ++; 

echo "total: $ban_num ipsn"; 

?>

Copy code


$threshold = 10;

$ban_num = 0;

foreach($ips as $ip=>$num){

$ip = trim($ip);                        $cmd = "iptables -I INPUT -p tcp --dport 80 -s $ip -j DROP"; shell_exec($cmd); echo "$ip banned!n"; $ban_num ++;
}   }
$proxy_arr = array_unique(file('proxy.txt')); foreach($proxy_arr as $proxy){ proxy = trim($proxy); $cmd = "iptables -I INPUT -p tcp --dport 80 -s $proxy -j DROP"; shell_exec($cmd); echo "$proxy banned!n"; $ban_num ++; } echo "total: $ban_num ipsn"; ?> Execute the script with the following command (make sure the php command is in PATH) php ban.php This script relies on the results saved in ips.txt in the second paragraph. When the number of IP visits recorded in it exceeds 10, it will be blocked as an attack source. If it is a proxy server, it will be blocked directly without judging the number of times. After blocking the IP, restore all website settings to normal, and the site can continue to operate normally. http://www.bkjia.com/PHPjc/629653.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/629653.htmlTechArticleThe author summarized some issues about CC script attacks and some solutions to prevent CC script attacks. If necessary, Friends can refer to it. 1. Log in to the VPS control panel and be ready to restart at any time...
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

CakePHP Date and Time CakePHP Date and Time Sep 10, 2024 pm 05:27 PM

To work with date and time in cakephp4, we are going to make use of the available FrozenTime class.

Discuss CakePHP Discuss CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP is an open-source framework for PHP. It is intended to make developing, deploying and maintaining applications much easier. CakePHP is based on a MVC-like architecture that is both powerful and easy to grasp. Models, Views, and Controllers gu

CakePHP File upload CakePHP File upload Sep 10, 2024 pm 05:27 PM

To work on file upload we are going to use the form helper. Here, is an example for file upload.

CakePHP Creating Validators CakePHP Creating Validators Sep 10, 2024 pm 05:26 PM

Validator can be created by adding the following two lines in the controller.

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

CakePHP Quick Guide CakePHP Quick Guide Sep 10, 2024 pm 05:27 PM

CakePHP is an open source MVC framework. It makes developing, deploying and maintaining applications much easier. CakePHP has a number of libraries to reduce the overload of most common tasks.

How do you parse and process HTML/XML in PHP? How do you parse and process HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

See all articles