PHP security - cheating form submission
Spoof form submission
Creating a spoofed form is almost as easy as forging a URL. After all, form submission is just an HTTP request made by the browser. Part of the format of the request depends on the form, and some of the data in the request comes from the user.
Most forms use a relative URL address to specify the action attribute:
<form action="process.php" method="POST">
When the form is submitted, the browser requests the URL specified in the action, and it uses the current URL address to locate the relative URL. For example, if the previous form was generated in response to a request for http://www.php.cn/, the URL address http://www.php.cn/ will be requested after the user submits the form.
Knowing this, it is easy to think that you can specify an absolute address so that the form can be placed anywhere :
<form action="http://example.org/path/to/process.php" method="POST">
This form can be placed anywhere, and the submissions produced using this form are the same as those produced by the original form. Realizing this, an attacker can view the source file of the page and save it on his server while changing the action to an absolute URL address. By using these methods, an attacker can arbitrarily change the form, such as removing the maximum field length limit, removing local validation code, changing the value of a hidden field, or rewriting the element type for more flexible purposes. These changes help an attacker submit any data to the server, and because the process is so simple and easy, the attacker does not need to be an expert to do it.
Spoofed form attacks cannot be prevented, and although this may seem a bit strange, it is actually true. But you don't need to worry about this. Once you filter input correctly, users must follow your rules, regardless of how they submit.
If you experiment with this technique, you may notice that most browsers include a Referer message in the HTTP header to identify the address of the previous page. In this example, the Referer value is the URL address of the form. Please don't be fooled by it and use it to differentiate between your form submissions and spoofed form submissions. In the demonstration in the next section, you can see that HTTP headers are also very easy to forge, and the method of using Referer to determine is well known.
The above is the content of PHP security-spoofing form submission. For more related content, please pay attention to the PHP Chinese website (www.php.cn)!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

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

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

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

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

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,

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

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

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 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.

In PHP, you can effectively prevent CSRF attacks by using unpredictable tokens. Specific methods include: 1. Generate and embed CSRF tokens in the form; 2. Verify the validity of the token when processing the request.
