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 fsockopen函数被禁用的解决办法
Aug 07 PHP
PHP中使用addslashes函数转义的安全性原理分析
Nov 03 PHP
Windows下编译PHP5.4和xdebug全记录
Apr 03 PHP
PHP版本的选择5.2.17 5.3.27 5.3.28 5.4 5.5兼容性问题分析
Apr 04 PHP
php版微信公众号接口实现发红包的方法
Oct 14 PHP
thinkPHP中session()方法用法详解
Dec 08 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
Mar 04 PHP
php实现购物车功能(以大苹果购物网为例)
Mar 09 PHP
PHP网页安全认证的实例详解
Sep 28 PHP
PHP从尾到头打印链表实例讲解
Sep 27 PHP
PDO::_construct讲解
Jan 27 PHP
PHP使用 Imagick 扩展实现图片合成,圆角处理功能示例
Sep 09 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 面向对象的一个例子
2011/04/12 PHP
PHP5 的对象赋值机制介绍
2011/08/02 PHP
360通用php防护代码(使用操作详解)
2013/06/18 PHP
关于jquery input textare 事件绑定及用法学习
2013/04/03 Javascript
Jquery中LigerUi的弹出编辑框(实现方法)
2013/07/09 Javascript
Jquery获取元素的父容器对象示例代码
2014/02/10 Javascript
轻松创建nodejs服务器(2):nodejs服务器的构成分析
2014/12/18 NodeJs
Javascript 运动中Offset的bug解决方案
2014/12/24 Javascript
javascript的tab切换原理与效果实现方法
2015/01/10 Javascript
详解JavaScript逻辑Not运算符
2015/12/04 Javascript
AngularJS双向绑定和依赖反转实例详解
2017/04/15 Javascript
Vue.extend构造器的详解
2017/07/17 Javascript
JS常用的几种数组遍历方式以及性能分析对比实例详解
2018/04/11 Javascript
从vue源码解析Vue.set()和this.$set()
2018/08/30 Javascript
jquery简单实现纵向的无缝滚动代码实例
2019/04/01 jQuery
Vue动态加载图片在跨域时无法显示的问题及解决方法
2020/03/10 Javascript
[47:18]完美世界DOTA2联赛循环赛 IO vs FTD BO2第一场 11.05
2020/11/06 DOTA
PyQt实现界面翻转切换效果
2018/04/20 Python
PyTorch快速搭建神经网络及其保存提取方法详解
2018/04/28 Python
python在每个字符后添加空格的实例
2018/05/07 Python
python2.7实现邮件发送功能
2018/12/12 Python
Python Handler处理器和自定义Opener原理详解
2020/03/05 Python
Python调用shell命令常用方法(4种)
2020/05/11 Python
使用 prometheus python 库编写自定义指标的方法(完整代码)
2020/06/29 Python
在django中查询获取数据,get, filter,all(),values()操作
2020/08/09 Python
css3 线性渐变和径向渐变示例附图
2014/04/08 HTML / CSS
canvas绘制太极图的实现示例
2020/04/29 HTML / CSS
英国水族馆和池塘用品购物网站:Warehouse Aquatics
2019/08/29 全球购物
荷兰浴室和卫浴网上商店:Badkamerxxl.nl
2020/10/06 全球购物
致标枪运动员广播稿
2014/02/06 职场文书
招标承诺书
2014/08/30 职场文书
离婚协议书样本
2015/01/26 职场文书
2015年第十五个全民国防教育日宣传活动方案
2015/05/06 职场文书
古诗文之爱国名句(77句)
2019/09/24 职场文书
原生JS中应该禁止出现的写法
2021/05/05 Javascript
如何有效防止sql注入的方法
2021/05/25 SQL Server