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之对抗Web扫描器的脚本技巧
Oct 01 PHP
php 冒泡排序 交换排序法
May 10 PHP
php学习笔记 [预定义数组(超全局数组)]
Jun 09 PHP
php strnatcmp()函数的用法总结
Nov 27 PHP
php设计模式之单例模式使用示例
Jan 20 PHP
php数组中包含中文的排序方法
Jun 03 PHP
PHP使用Face++接口开发微信公众平台人脸识别系统的方法
Apr 17 PHP
thinkphp3.x中session方法的用法分析
May 20 PHP
php gd等比例缩放压缩图片函数
Jun 12 PHP
php与python实现的线程池多线程爬虫功能示例
Oct 12 PHP
php的socket编程详解
Nov 20 PHP
ThinkPHP6.0如何利用自定义验证规则规范的实现登陆
Dec 16 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获取photoshop写入图片文字信息的方法
2015/03/31 PHP
php处理单文件、多文件上传代码分享
2016/08/24 PHP
php+layui数据表格实现数据分页渲染代码
2019/10/26 PHP
利用JS重写Cognos右键菜单的实现代码
2010/04/11 Javascript
jQuery:节点(插入,复制,替换,删除)操作
2013/03/04 Javascript
js数组方法扩展实现数组统计函数
2014/04/09 Javascript
JavaScript实现Java中StringBuffer的方法
2015/02/09 Javascript
jQuery的几个我们必须了解的特点
2015/05/03 Javascript
Three.js学习之正交投影照相机
2016/08/01 Javascript
微信小程序 生命周期和页面的生命周期详细介绍
2017/01/19 Javascript
详解easyui基于 layui.laydate日期扩展组件
2018/07/18 Javascript
详解Next.js页面渲染的优化方案
2019/01/27 Javascript
vue组件定义,全局、局部组件,配合模板及动态组件功能示例
2019/03/19 Javascript
nodejs nedb 封装库与使用方法示例
2020/02/06 NodeJs
JavaScript进阶(四)原型与原型链用法实例分析
2020/05/09 Javascript
vue webpack build资源相对路径的问题及解决方法
2020/06/04 Javascript
详解Python中的文件操作
2016/08/28 Python
fastcgi文件读取漏洞之python扫描脚本
2017/04/23 Python
Python字符串处理实例详解
2017/05/18 Python
深入理解Python中的内置常量
2017/05/20 Python
python列表使用实现名字管理系统
2019/01/30 Python
python3中sorted函数里cmp参数改变详解
2020/03/12 Python
python 实现仿微信聊天时间格式化显示的代码
2020/04/17 Python
基于python计算并显示日间、星期客流高峰
2020/05/07 Python
无需JS和jQuery代码实现CSS3鼠标浮动放大图片
2016/11/21 HTML / CSS
解决margin 外边距合并问题
2019/07/03 HTML / CSS
工艺工程师工作职责
2013/11/23 职场文书
高中物理教学反思
2014/02/08 职场文书
更夫岗位责任制
2014/02/11 职场文书
大班上学期幼儿评语
2014/04/30 职场文书
分公司经理任命书
2014/06/05 职场文书
2015年乡镇安全生产工作总结
2015/05/19 职场文书
魂断蓝桥观后感
2015/06/10 职场文书
升学宴来宾致辞
2015/07/27 职场文书
投资入股协议书
2016/03/22 职场文书
MongoDB数据库的安装步骤
2021/06/18 MongoDB