Home Backend Development PHP Tutorial PHP image hotlink protection tool: Hotlink Protection_PHP tutorial

PHP image hotlink protection tool: Hotlink Protection_PHP tutorial

Jul 21, 2016 pm 02:54 PM
php principle picture tool yes of chain

The principle of Hotlink Protection is to use Apache's RewriteCond function to detect the REFERER request when a file request is obtained, and only the URL of this website will be allowed. This principle is very suitable for the protection of self-made avatars, because avatars should only be used within this website.

The following takes discuz as an example to explain how to use it: Fire...fire...net...anti...theft...chain

Discuz’s built-in avatars are stored in the /forum/images/avatars/ directory. I only want to protect these built-in avatars. The avatars and other pictures uploaded by users do not restrict others from citing them, so the RewriteCond code can be placed in this directory:

Copy to ClipboardLiehuo.Net CodesQuoted content: [www.bkjia.com] RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://bkjia.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://bkjia.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.bkjia.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.bkjia.com$ [NC]
RewriteRule .*.(jpg|jpeg|gif|png)$ http://www.bkjia.com/img/hp.gif [R,NC]

The four RewriteCond excludes four ways to access your own website, namely, visiting a certain page of the website without www, visiting the homepage of the website without www, visiting a certain page of the website with www, and visiting the homepage of the website with www. If it meets HTTP_REFERER other than these four situations, and the file ends with jpg or jpeg, gif, or png, it will be redirected to the http://www.bkjia.com/img/hp.gif file.

Save this file as .htaccess and upload it to the /forum/images/avatars/ directory. If you want to protect the images of the entire website, upload them to the root directory; if you want to protect files in other formats, add the extension directly to the RewriteRule.

By the way: This method has certain limitations. For example, some download tools can send custom "reference" values; in addition, the firewalls and anti-virus software installed by some users will prevent the browser from sending the HTTP_REFERER value to the server. Therefore their normal browsing will be affected. I really don’t know what the manufacturers of this type of firewall software think, because at most it only involves privacy (and it is mainly the privacy of the HTTP_REFERER website, which has nothing to do with visitors), and has nothing to do with network security.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/364608.htmlTechArticleThe principle of Hotlink Protection is to use Apache’s RewriteCond function to detect the request REFERER when a file request is obtained. Only this website Only the URL will be allowed. This principle is very suitable for self-made avatars...
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
3 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)

Explain the match expression (PHP 8 ) and how it differs from switch. Explain the match expression (PHP 8 ) and how it differs from switch. Apr 06, 2025 am 12:03 AM

In PHP8, match expressions are a new control structure that returns different results based on the value of the expression. 1) It is similar to a switch statement, but returns a value instead of an execution statement block. 2) The match expression is strictly compared (===), which improves security. 3) It avoids possible break omissions in switch statements and enhances the simplicity and readability of the code.

Does H5 page production require continuous maintenance? Does H5 page production require continuous maintenance? Apr 05, 2025 pm 11:27 PM

The H5 page needs to be maintained continuously, because of factors such as code vulnerabilities, browser compatibility, performance optimization, security updates and user experience improvements. Effective maintenance methods include establishing a complete testing system, using version control tools, regularly monitoring page performance, collecting user feedback and formulating maintenance plans.

What is Cross-Site Request Forgery (CSRF) and how do you implement CSRF protection in PHP? What is Cross-Site Request Forgery (CSRF) and how do you implement CSRF protection in PHP? Apr 07, 2025 am 12:02 AM

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.

Why are the purple slashed areas in the Flex layout mistakenly considered 'overflow space'? Why are the purple slashed areas in the Flex layout mistakenly considered 'overflow space'? Apr 05, 2025 pm 05:51 PM

Questions about purple slash areas in Flex layouts When using Flex layouts, you may encounter some confusing phenomena, such as in the developer tools (d...

Describe the purpose and usage of the ... (splat) operator in PHP function arguments and array unpacking. Describe the purpose and usage of the ... (splat) operator in PHP function arguments and array unpacking. Apr 06, 2025 am 12:07 AM

The... (splat) operator in PHP is used to unpack function parameters and arrays, improving code simplicity and efficiency. 1) Function parameter unpacking: Pass the array element as a parameter to the function. 2) Array unpacking: Unpack an array into another array or as a function parameter.

How can you prevent a class from being extended or a method from being overridden in PHP? (final keyword) How can you prevent a class from being extended or a method from being overridden in PHP? (final keyword) Apr 08, 2025 am 12:03 AM

In PHP, the final keyword is used to prevent classes from being inherited and methods being overwritten. 1) When marking the class as final, the class cannot be inherited. 2) When marking the method as final, the method cannot be rewritten by the subclass. Using final keywords ensures the stability and security of your code.

Why does negative margins not take effect in some cases? How to solve this problem? Why does negative margins not take effect in some cases? How to solve this problem? Apr 05, 2025 pm 10:18 PM

Why do negative margins not take effect in some cases? During programming, negative margins in CSS (negative...

Explain strict types (declare(strict_types=1);) in PHP. Explain strict types (declare(strict_types=1);) in PHP. Apr 07, 2025 am 12:05 AM

Strict types in PHP are enabled by adding declare(strict_types=1); at the top of the file. 1) It forces type checking of function parameters and return values ​​to prevent implicit type conversion. 2) Using strict types can improve the reliability and predictability of the code, reduce bugs, and improve maintainability and readability.

See all articles