Table of Contents
Reply content:
Home Backend Development PHP Tutorial How to prevent denial of service attacks in APIs written in PHP?

How to prevent denial of service attacks in APIs written in PHP?

Jul 21, 2016 pm 12:01 PM
android ios key php websocket

Many companies now use PHP to write APIs to connect to the front-end web/iOS/Android. The cloud and end are completely separated, and dynamic negotiation cannot be achieved. If both parties agree on a static KEY, it will be transparent in the js of the web. Even ios/android can easily obtain this KEY through package interception or decompilation.
Nowadays, the maximum concurrency that general cloud services can accept is only a few thousand. If it is full by a denial of service attack, it will inevitably affect the access of normal users. Especially when using a communication protocol like websocket, once a connection is established, it will always be in trouble. If you just write a simple multi-line simulated connection to harass it, the server will basically fail.
How to properly prevent such attacks on the PHP side? There is no need to go too extreme. Controlling the paralysis within 10 minutes should still be acceptable for ordinary small applications.

Reply content:

In fact, the problem mentioned by the question is widespread. It can be said from two aspects:

Code aspect:
Programmer’s experience. Generally, it is the black and white list in terms of code, followed by the handling of interface timeout, and the rest are some specifications. In fact, there is no particularly good experience. More generally, ordinary hackers will not DDOS you directly. If it were a real DDOS, these would be enough for you. It is more about daily maintenance and handling of data anomalies.

Actually, you don’t have to worry about being maliciously attacked. To put it bluntly, the interface is also POST GET. As long as you filter the interface data to ensure the security of the data, common vulnerabilities can be prevented. Ordinary third-rate hackers will basically block this door. Unless your website is very famous, you can find a security company to do a test. Basically OK To deal with DDoS attacks, it is more about system-level protection. The API interface written by PHP is generally for business. What PHP for business can do is not to hang up and respond as quickly as possible
In addition, the machine load capacity should be taken into consideration , basically this kind of problem requires the use of flow control to limit the number of times a terminal can access a certain API within a period of time. 1. The authentication interface receives a client time and a signature. First verify that the client time and server time are within a certain error range (such as ±5 minutes, the larger the error range, the less secure), and then verify whether the signature is consistent (the signature algorithm must use the client time). After success, a token and a random string.
2. All interfaces except the authentication interface must receive token and a signature. First check whether the token is legal, and then verify whether the signature is consistent (the signature algorithm must use the random string returned by the authentication interface).
3. Strategies for all interfaces:
1) If the signature verification fails a certain number of times (1 time, 2 times, 3 times, the larger the number, the less secure), the IP will be blocked.
2) If a single IP call exceeds the limit (it is best to set different restrictions for each interface according to business needs. For example, you can request 5 times/day for login), block the IP. ip whitelist If it happens too often, the IP will be blocked. Don’t go to such trouble, use iptables
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

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

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

7 PHP Functions I Regret I Didn't Know Before 7 PHP Functions I Regret I Didn't Know Before Nov 13, 2024 am 09:42 AM

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

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

Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Apr 05, 2025 am 12:04 AM

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

PHP Program to Count Vowels in a String PHP Program to Count Vowels in a String Feb 07, 2025 pm 12:12 PM

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

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

Explain late static binding in PHP (static::). Explain late static binding in PHP (static::). Apr 03, 2025 am 12:04 AM

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? Apr 03, 2025 am 12:03 AM

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.

See all articles