PHP method to prevent hotlinking of blog and forum pictures

墨辰丷
Release: 2023-03-28 18:50:01
Original
2105 people have browsed it

This article mainly introduces the method of preventing hotlinking in blogs and forum pictures in PHP, involving related operating techniques of combining PHP strings with sessions to determine images. Friends in need can refer to the following

There are many ways to prevent hotlinking , I will talk about my understanding of hotlinking here. This is the same principle as preventing remote submission.

Introduce a function first

uniqid(string);
//这个函数的作用,是在你添加的字符串后面随即添加一个独一无二ID字符串。
Copy after login

If you are still not worried, you can use SHA1 for the string output by this function () function to perform encryption.

In this way we get a unique string that only you know, which is used to make a digital visa. Next is how to detect this digital visa.

function has($string)
{
if(!isset($string) || $string != $_SESSION["uniqid"])
{
exit;
}
}
//上面这个函数的意思是如果不存在字符串$string或者字符串不等于$_SESSION["uniqid"];
//则不执行下面的部分。
Copy after login

The function to detect the digital visa will be written later. What to do next. We all know that web pages are executed from the top all the way down. Just generate the digital visa at the top and verify it in the function below.

session_start(); //开去session功能
$uniqid = uniqid("dwz");
$_SESSION["uniqid"] = $uniqid;
//执行代码
has($uniqid); //进行数字验证
Copy after login

The above simplest way to prevent hotlinking is completed. Back to the topic, how to prevent hotlinking of pictures?

This is a simpler answer. When we look at the source code of website images, we will find that there are two paths for storing images: one is a relative path and the other is an absolute path.

The relative path means: the picture is on your server.

I think the path means: the picture can be on your server or not.

If it is not on your server, then there is a URL address or IP address. This is the key to our theft prevention.

$_SERVER['HTTP_HOST'];
//这样就可以获取服务器的url。但这个可以直接用代码修改.
Copy after login

Get the send request URL so that you can verify it. If it is your URL, it will pass, if not, it will not be executed. It’s the same principle!

Summary: The above is the entire content of this article, I hope it will be helpful to everyone's study.

Related recommendations:

redis command list below php

PHP reference variable knowledge Detailed explanation

PHP’s coupling design pattern

##

The above is the detailed content of PHP method to prevent hotlinking of blog and forum pictures. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template