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 相关文章推荐
adodb与adodb_lite之比较
Dec 31 PHP
把1316这个数表示成两个数的和,其中一个为13的倍数,另一个是11的倍数,求这两个数。
Jun 24 PHP
php报表之jpgraph柱状图实例代码
Aug 22 PHP
使用 PHPMAILER 发送邮件实例应用
Nov 07 PHP
关于file_get_contents返回为空或函数不可用的解决方案
Jun 24 PHP
php数组删除元素示例
Mar 21 PHP
分享最受欢迎的5款PHP框架
Nov 27 PHP
10个简化PHP开发的工具
Dec 25 PHP
PHP实现批量检测网站是否能够正常打开的方法
Aug 23 PHP
php版微信公众平台入门教程之开发者认证的方法
Sep 26 PHP
在Ubuntu 18.04上安装PHP 7.3 7.2和7.0的方法
Apr 09 PHP
php实现简易计算器
Aug 28 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
Discuz!5的PHP代码高亮显示插件(黑暗中的舞者更新)
2007/01/29 PHP
PHP 代码规范小结
2012/03/08 PHP
PHP 使用pcntl和libevent 实现Timer功能
2013/10/27 PHP
PHP开发工具ZendStudio下Xdebug工具使用说明详解
2013/11/11 PHP
PHP基于数组实现的分页函数实例
2014/08/20 PHP
php实现微信企业号支付个人的方法详解
2017/07/26 PHP
php 可变函数使用小结
2018/06/12 PHP
在laravel中实现ORM模型使用第二个数据库设置
2019/10/24 PHP
Alliance vs Liquid BO3 第一场2.13
2021/03/10 DOTA
关于Javascript作用域链的八点总结
2013/12/06 Javascript
JS OffsetParent属性深入解析
2014/01/13 Javascript
js图片模糊切换显示特效的方法
2015/02/17 Javascript
jquery-tips悬浮提示插件分享
2015/07/31 Javascript
详细谈谈AngularJS的子级作用域问题
2016/09/05 Javascript
老生常谈js数据类型
2017/08/03 Javascript
Vue中$refs的用法详解
2018/06/24 Javascript
详解在vue-cli3.0中自定css、js和图片的打包路径
2019/08/26 Javascript
Node使用Selenium进行前端自动化操作的代码实现
2019/10/10 Javascript
判断JavaScript中的两个变量是否相等的操作符
2019/12/21 Javascript
python通过apply使用元祖和列表调用函数实例
2015/05/26 Python
利用python代码写的12306订票代码
2015/12/20 Python
Python动态生成多维数组的方法示例
2018/08/09 Python
Python字典遍历操作实例小结
2019/03/05 Python
Python实现根据日期获取当天凌晨时间戳的方法示例
2019/04/09 Python
Python容器使用的5个技巧和2个误区总结
2019/09/26 Python
基于spring boot 日志(logback)报错的解决方式
2020/02/20 Python
在pycharm中debug 实时查看数据操作(交互式)
2020/06/09 Python
PyCharm2020.1.1与Python3.7.7的安装教程图文详解
2020/08/07 Python
Python基于staticmethod装饰器标示静态方法
2020/10/17 Python
波兰快递服务:Globkurier.pl
2019/11/08 全球购物
大学生自我鉴定范文模板
2014/01/21 职场文书
党员2014两会学习心得体会
2014/03/17 职场文书
首席执行官观后感
2015/06/03 职场文书
小区物业管理2015年度工作总结
2015/10/22 职场文书
2015年终个人政治思想工作总结
2015/11/24 职场文书
CSS实现九宫格布局(自适应)的示例代码
2022/02/12 HTML / CSS