本文所描述操作仅供学习curl命令,请勿用于盗刷他人图床等违规操作!🙅‍♀️

1.说明

当我想把51la添加到我的导航站点,却发现它的icon图标有防盗链,禁止空referer访问的;

这点完全可以理解,为了防止他人盗刷本站的图片,通常我们都需要给图片地址加上防盗链。

image-20230220124149093

其实51la提供了自己的icon,但这里提供的icon像素特别低,只有16*16,在我的导航站点上的显示就没有那么友好了

image-20230220124643681

image-20230220124728488

所以我才想把稍微清晰一点的icon图标下载下来

2.curl使用

参考 https://www.ruanyifeng.com/blog/2019/09/curl-reference.html

要避开这个403访问权限,需要做的就是给请求头给定一个referer字段,告诉51la的服务器,我是通过他自己的域名访问图标文件

1
2
3
4
curl \
-H 'Referer: https://v6.51.la/' \
https://v6-static.51.la/v6-static/202302161047/favicon.ico \
-o favicon.ico

对上面提到的几个参数做一定解释

  • -H 设定请求头,需要符号http协议的标准key: value
  • -o 将获取到的内容保存为文件,在后面指定文件名(这里我指定为了favicon.ico

linux下用这个命令,就能成功拉取到51la的站点图片

image-20230220124820822

如果不加referer字段,则还是会返回403

1
2
3
4
5
6
7
8
$ curl https://v6-static.51.la/v6-static/202302161047/favicon.ico 
<html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>openresty</center>
</body>
</html>

备注:windows下使用这个curl命令会报错,因为windows下的curl参数和linux下是不同的。