php实现博客,论坛图片防盗链的方法


Posted in PHP onOctober 15, 2016

本文实例讲述了php实现博客,论坛图片防盗链的方法。分享给大家供大家参考,具体如下:

防盗链的方式很多,我这里就说说我对放盗链的理解,这个跟防止远程提交是一个原理。

先介绍一个函数

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

如果你还不放心,你可以给这个函输出的字符串再用SHA1()函数进行加密。

这样我们得到了一个独一无二,且只有你自己知道的字符串,用来做数字签证。接下来是如何检测这个数字签证。

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

检测数字签证的函数以后写好了。接下来是怎么做了。都知道网页是从最顶部一直执行下来的。只要在顶部生出数字签证,在下面的函数中进行验证就可以了。

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

上面的最简答的防盗链的方式就完成了。回到正题,怎么防止图片的盗链?

这个更简答。当我们查看网站图片源码的时候会发现,存储图片有二种路径:一种是相对路径,一种是绝对路径。

相对路径的意思是:图片在你的服务器上面。

觉得路径的意思是:图片可以在你的服务器上面,也可以不在你的服务器上面。

如果不在你的服务器上面,那就有一个URL地址或者IP地址。这个就是我们防盗的关键所在。

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

获取发送请求URL这样,就可以进行验证,如果是你的URL则通过,不是则不执行。是一样的原理吧!

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
用PHP实现图象锐化代码
Jun 14 PHP
PHP面向对象分析设计的61条军规小结
Jul 17 PHP
php生成随机密码的几种方法
Jan 17 PHP
PHP导出EXCEL快速开发指南--PHPEXCEL的使用详解
Jun 03 PHP
php根据年月获取季度的方法
Mar 31 PHP
destoon实现公司新闻详细页添加评论功能的方法
Jul 15 PHP
php中unserialize返回false的解决方法
Sep 22 PHP
基于thinkPHP框架实现留言板的方法
Oct 17 PHP
基于ThinkPHP5.0实现图片上传插件
Sep 25 PHP
php判断文件上传图片格式的实例详解
Sep 30 PHP
PHP实现的多维数组排序算法分析
Feb 10 PHP
Laravel 不同生产环境服务器的判断实践
Oct 15 PHP
PHP云打印类完整示例
Oct 15 #PHP
PHP实现统计在线人数功能示例
Oct 15 #PHP
Thinkphp连表查询及数据导出方法示例
Oct 15 #PHP
PHP实现导出excel数据的类库用法示例
Oct 15 #PHP
PHP数组操作简单案例分析
Oct 15 #PHP
PHP链表操作简单示例
Oct 15 #PHP
PHP在线打包下载功能示例
Oct 15 #PHP
You might like
如何使用PHP给图片加水印
2016/10/12 PHP
如何修改Laravel中url()函数生成URL的根地址
2017/08/11 PHP
javascript 命名空间以提高代码重用性
2008/11/13 Javascript
重构Javascript代码示例(重构前后对比)
2013/01/23 Javascript
基于JavaScript自定义构造函数的详解说明
2013/04/24 Javascript
jQuery中获取Radio元素值的方法
2013/07/02 Javascript
javascript学习笔记_浅谈基础语法,类型,变量
2016/09/19 Javascript
前端实现文件的断点续传(前端文件提交+后端PHP文件接收)
2016/11/04 Javascript
Vue 实现树形视图数据功能
2018/05/07 Javascript
NodeJS使用Range请求实现下载功能的方法示例
2018/10/12 NodeJs
swiper实现导航滚动效果
2020/12/13 Javascript
Python中的模块导入和读取键盘输入的方法
2015/10/16 Python
Ubuntu 16.04 LTS中源码安装Python 3.6.0的方法教程
2016/12/27 Python
安装Python的教程-Windows
2017/07/22 Python
python中的随机函数random的用法示例
2018/01/27 Python
django-rest-swagger的优化使用方法
2019/08/29 Python
浅谈Python3多线程之间的执行顺序问题
2020/05/02 Python
PyTorch在Windows环境搭建的方法步骤
2020/05/12 Python
Python如何实现的二分查找算法
2020/05/27 Python
MoviePy简介及Python视频剪辑自动化
2020/12/18 Python
CSS3教程(10):CSS3 HSL声明设置颜色
2009/04/02 HTML / CSS
css3实现圆锥渐变conic-gradient效果
2020/02/12 HTML / CSS
皮姆斯勒语言学习:Pimsleur Language Programs
2018/06/30 全球购物
世界上最好的野生海鲜和有机食品:Vital Choice
2020/01/16 全球购物
鞋类设计与工艺专业销售求职信
2013/11/01 职场文书
小学新教师培训方案
2014/02/03 职场文书
教师求职自荐书
2014/06/14 职场文书
欢迎词怎么写
2015/01/23 职场文书
二审代理词范文
2015/05/25 职场文书
基层工作经历证明
2015/06/19 职场文书
关爱空巢老人感想
2015/08/11 职场文书
奶茶店的创业计划书该怎么写?
2019/07/15 职场文书
高中语文教材(文学文化常识大全一)
2019/08/13 职场文书
pycharm无法导入lxml的解决办法
2021/03/31 Python
MySQL获取所有分类的前N条记录
2021/05/07 MySQL
win10蓝屏0xc0000001安全模式进不了怎么办?win10出现0xc0000001的解决方法
2022/08/05 数码科技