Detailed explanation of anti-hotlinking and solutions in Java
This article mainly introduces the detailed explanation and solutions of Java anti-hotlinking. Here it introduces the concept, causes and referer in Http of anti-hotlinking. Finally, it introduces the solution. Friends who need it can refer to it
Detailed explanation and solution of java anti-hotlinking
1. The concept of anti-hotlinking
The content is not on your own server, through technical means Place the content of other websites (such as some music, pictures, software download addresses) in your own website, and steal the space and traffic of other websites through this method.
2. The generation of anti-hotlinking
Generally, when making an http request, a complete page is not transmitted to the client all at once. If the request is for a page with many pictures and other information, then the first HTTP request is sent back the text of this page, and then the client's browser interprets and executes this text, and finds that there are picture, then the client's browser will send another Http request, so that a complete page may need to send multiple Http requests before it can be fully displayed. Based on such a mechanism, a problem will arise, that is, the problem of hotlinking: if a website does not have the information mentioned on the page, such as picture information, then it can completely connect the picture to other websites. In this way, while increasing your own visits, it also increases the load on other people's servers.
3. Referer in Http
HTTP Referer is part of the header. When the browser sends a request to the web server, it usually brings the Referer. , tell the server which page I am linked from, so that the server can get some information for processing.
4. Java solves the problem of hotlink prevention
We can set up a filter to intercept all requests and extract the referer in http when external requests come in. Then make a judgment. If it is the source of this website, then allow access, otherwise deny it.
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse resp = (HttpServletResponse) response; String referer = req.getHeader("referer"); if(null != referer && referer.trim().startsWith("http://localhost:8080/dstn")){ System.out.println("正常页面请求"); chain.doFilter(req, resp); }else{ System.out.println("盗链"); req.getRequestDispatcher("/html/error.html").forward(req, resp); } }
The above is the detailed content of Detailed explanation of anti-hotlinking and solutions in Java. For more information, please follow other related articles on the PHP Chinese website!

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



Guide to Perfect Number in Java. Here we discuss the Definition, How to check Perfect number in Java?, examples with code implementation.

Guide to Weka in Java. Here we discuss the Introduction, how to use weka java, the type of platform, and advantages with examples.

Guide to Smith Number in Java. Here we discuss the Definition, How to check smith number in Java? example with code implementation.

In this article, we have kept the most asked Java Spring Interview Questions with their detailed answers. So that you can crack the interview.

Java 8 introduces the Stream API, providing a powerful and expressive way to process data collections. However, a common question when using Stream is: How to break or return from a forEach operation? Traditional loops allow for early interruption or return, but Stream's forEach method does not directly support this method. This article will explain the reasons and explore alternative methods for implementing premature termination in Stream processing systems. Further reading: Java Stream API improvements Understand Stream forEach The forEach method is a terminal operation that performs one operation on each element in the Stream. Its design intention is

Guide to TimeStamp to Date in Java. Here we also discuss the introduction and how to convert timestamp to date in java along with examples.

Capsules are three-dimensional geometric figures, composed of a cylinder and a hemisphere at both ends. The volume of the capsule can be calculated by adding the volume of the cylinder and the volume of the hemisphere at both ends. This tutorial will discuss how to calculate the volume of a given capsule in Java using different methods. Capsule volume formula The formula for capsule volume is as follows: Capsule volume = Cylindrical volume Volume Two hemisphere volume in, r: The radius of the hemisphere. h: The height of the cylinder (excluding the hemisphere). Example 1 enter Radius = 5 units Height = 10 units Output Volume = 1570.8 cubic units explain Calculate volume using formula: Volume = π × r2 × h (4

Spring Boot simplifies the creation of robust, scalable, and production-ready Java applications, revolutionizing Java development. Its "convention over configuration" approach, inherent to the Spring ecosystem, minimizes manual setup, allo
