java防盗链代码示例
时间: 2023-09-10 22:09:16 浏览: 94
文件防盗链示例源码
以下是一个示例代码,演示如何在 Java 中实现防盗链:
```java
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class AntiHotlinkingServlet extends HttpServlet {
private final String ALLOWED_DOMAIN = "example.com"; // 合法的域名
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String referer = request.getHeader("referer");
if (referer != null && referer.contains(ALLOWED_DOMAIN)) {
// 合法的请求,返回资源
response.setContentType("image/jpeg"); // 设置资源类型,这里以图片为例
// 读取并输出资源内容
// ...
} else {
// 非法的请求,返回错误信息或重定向到其他页面
response.sendError(HttpServletResponse.SC_FORBIDDEN, "Access Denied");
}
}
}
```
上述代码是一个 Servlet 类,用于处理 HTTP GET 请求。在 `doGet` 方法中,通过 `request.getHeader("referer")` 获取请求的 Referer 头信息,然后检查是否包含合法域名。
如果 Referer 头存在且包含合法域名,则认为是合法的访问请求,可以返回资源内容。这里以图片为例,设置响应的内容类型为 `image/jpeg`,然后读取图片内容并输出。
如果 Referer 头不存在或不包含合法域名,则认为是非法访问请求,可以返回错误信息(例如 403 Forbidden)或重定向到其他页面。
需要注意的是,该示例只是简单演示了防盗链的基本思路,实际应用中可能需要更复杂的逻辑和验证方式。具体的实现方式会根据项目和需求的不同而有所差异。
阅读全文