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 相关文章推荐
第四节--构造函数和析构函数
Nov 16 PHP
发布一个迷你php+AJAX聊天程序[聊天室]提供下载
Jul 21 PHP
php发送post请求的三种方法
Feb 11 PHP
php递归方法实现无限分类实例代码
Feb 28 PHP
PHP 字符串长度判断效率更高的方法
Mar 02 PHP
PHP APC缓存配置、使用详解
Mar 06 PHP
浅谈PDO的rowCount函数
Jun 18 PHP
php获得文件夹下所有文件的递归算法的简单实例
Nov 01 PHP
Zend Framework入门教程之Zend_Session会话操作详解
Dec 08 PHP
PHP编程求最大公约数与最小公倍数的方法示例
May 29 PHP
解决php-fpm.service not found问题的办法
Jun 06 PHP
PHP将数据导出Excel表中的实例(投机型)
Jul 31 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
关于拼配咖啡,你要知道
2021/03/03 咖啡文化
PHP调用Twitter的RSS的实现代码
2010/03/10 PHP
让PHP以ROOT权限执行系统命令的方法
2011/02/10 PHP
php通过sort()函数给数组排序的方法
2015/03/18 PHP
PHP PDOStatement::fetchAll讲解
2019/01/31 PHP
js控制框架刷新
2008/08/01 Javascript
JavaScript 学习笔记二 字符串拼接
2010/03/28 Javascript
jquery利用ajax调用后台方法实例
2013/08/23 Javascript
javascript:void(0)的问题使用探讨
2014/04/10 Javascript
JavaScript中遍历对象的property的3种方法介绍
2014/12/30 Javascript
setTimeout内不支持jquery的选择器的解决方案
2015/04/28 Javascript
基于JS快速实现导航下拉菜单动画效果附源码下载
2016/10/27 Javascript
微信小程序中使元素占满整个屏幕高度实现方法
2016/12/14 Javascript
AngularJS指令与指令之间的交互功能示例
2016/12/14 Javascript
小发现之浅谈location.search与location.hash的问题
2017/06/23 Javascript
JavaScript变量声明var,let.const及区别浅析
2018/04/23 Javascript
微信小程序项目实践之九宫格实现及item跳转功能
2018/07/19 Javascript
解决jQuery使用append添加的元素事件无效的问题
2018/08/30 jQuery
JavaScript错误处理操作实例详解
2019/01/04 Javascript
JavaScript创建对象的四种常用模式实例分析
2019/01/11 Javascript
解决vue单页面多个组件嵌套监听浏览器窗口变化问题
2020/07/30 Javascript
vue实现给div绑定keyup的enter事件
2020/07/31 Javascript
Openlayers绘制聚合标注
2020/09/28 Javascript
[02:49]DOTA2完美大师赛首日观众采访
2017/11/23 DOTA
简单谈谈Python中的几种常见的数据类型
2017/02/10 Python
解决Python pandas plot输出图形中显示中文乱码问题
2018/12/12 Python
利用OpenCV和Python实现查找图片差异
2019/12/19 Python
Python3爬虫中关于中文分词的详解
2020/07/29 Python
canvas学习笔记之绘制简单路径
2019/01/28 HTML / CSS
基于HTML5新特性Mutation Observer实现编辑器的撤销和回退操作
2016/01/11 HTML / CSS
新加坡航空官方网站:Singapore Airlines
2016/10/13 全球购物
分公司经理任命书
2014/06/05 职场文书
2014学校领导四风问题对照检查材料思想汇报
2014/09/22 职场文书
乡镇党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
公安干警正风肃纪心得体会
2016/01/15 职场文书
新手入门Mysql--sql执行过程
2021/06/20 MySQL