安全架构-Http请求防盗链

本文探讨了Http请求防盗链的概念,解释了资源被盗链的危害,并提供了防范措施,包括通过检查Referer字段来阻止非法引用。还分享了Java和Node.js的实现示例,以及Nginx配置策略。
摘要由CSDN通过智能技术生成

Http请求防盗链


前言

互联网上资源越来越多,有很多资源是需要付费访问,我们自己公网上的资源,需要有安全意识,不被盗用。


一、什么是防盗链?

比如A网站有一张图片,被B网站直接通过img标签属性引入,直接盗用A网站图片展示;内容不在自己的服务器上,通过技术手段将其他网站的内容(比如一些音乐、图片、软件的下载地址)放置在自己的网站中,通过这种方法盗取其他网站的空间和流量。

二、有何危害?

资源被盗用,流量被消耗

三、如何防范?

1.思路

判断http请求头Referer域中的记录来源的值,如果和当前访问的域名不一致的情况下,说明该图片可能被其他服务器盗用。

2.实现

java代码如下:

@WebFilter(filterName = "imgFilter", urlPatterns = "/imgs/*")
public class ImgFilter implements Filter {
   

	@Value("${domain.name}")
	private String domainName;

	public void init(FilterConfig filterConfig) throws ServletException {
   

	}

	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
			throws IOException, ServletException {
   
		HttpServletRequest req = (HttpServletRequest) request;
		String referer = req.getHeader("Referer");
		if (StringUtils.isEmpty(referer)) {
   
			request.getRequestDispatcher("/imgs/error.png").forward(request, response);
			return;
		}
		String domain = getDomain(referer);
		if (!domain.equals(domainName)) 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值