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&&mysql)五
Oct 09 PHP
Windows Apache2.2.11及Php5.2.9-1的安装与配置方法
Jun 08 PHP
PHP 配置open_basedir 让各虚拟站点独立运行
Nov 12 PHP
Linux fgetcsv取得的数组元素为空字符串的解决方法
Nov 25 PHP
win7下memCache的安装过程(具体操作步骤)
Jun 28 PHP
CI(CodeIgniter)框架介绍
Jun 09 PHP
PHP 抽象方法与抽象类abstract关键字介绍及应用
Oct 16 PHP
基于PHP实现的事件机制实例分析
Jun 18 PHP
php实现递归的三种基本方式
Jul 04 PHP
Ajax和PHP正则表达式验证表单及验证码
Sep 24 PHP
php 可变函数使用小结
Jun 12 PHP
Laravel框架文件上传功能实现方法示例
Apr 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
Discuz! Passport 通行证整合
2008/03/27 PHP
php下清空字符串中的HTML标签的代码
2010/09/06 PHP
淘宝ip地址查询类分享(利用淘宝ip库)
2014/01/07 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
nodeType属性返回被选节点的节点类型介绍
2013/11/22 Javascript
关于js中for in的缺陷浅析
2013/12/02 Javascript
用模版生成HTML的的框架jquery.tmpl使用详解
2015/01/07 Javascript
浅谈javascript 迭代方法
2015/01/21 Javascript
JS的框架Polymer中的dom-if和is属性使用说明
2015/07/29 Javascript
14款经典网页图片和文字特效的jQuery插件-前端开发必备
2015/08/25 Javascript
详解JavaScript基于面向对象之创建对象(2)
2015/12/10 Javascript
基于Vue.js实现数字拼图游戏
2016/08/02 Javascript
JavaScript中日期函数的相关操作知识
2016/08/03 Javascript
老生常谈javascript变量的命名规范和注释
2016/09/29 Javascript
使用Browserify来实现CommonJS的浏览器加载方法
2017/05/14 Javascript
layer弹出层父子页面事件相互调用方法
2018/08/17 Javascript
vue项目打包后上传至GitHub并实现github-pages的预览
2019/05/06 Javascript
基于JavaScript实现十五拼图代码实例
2020/04/26 Javascript
JavaScript setTimeout()基本用法有哪些
2020/11/04 Javascript
antd table按表格里的日期去排序操作
2020/11/17 Javascript
[01:12:08]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.24
2019/09/10 DOTA
python代码检查工具pylint 让你的python更规范
2012/09/05 Python
python异步任务队列示例
2014/04/01 Python
Python图像灰度变换及图像数组操作
2016/01/27 Python
Python爬虫包 BeautifulSoup  递归抓取实例详解
2017/01/28 Python
Python3 循环语句(for、while、break、range等)
2017/11/20 Python
实例教程 一款纯css3实现的数字统计游戏
2014/11/10 HTML / CSS
Android本地应用打开方法——通过html5写连接
2016/03/11 HTML / CSS
美国最大的船只买卖在线市场:Boat Trader
2018/08/04 全球购物
党员公开承诺践诺书
2014/03/25 职场文书
第二批党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
2014年师德师风工作总结
2014/11/25 职场文书
先进单位申报材料
2014/12/25 职场文书
八一建军节主持词
2015/07/01 职场文书
宝宝满月宴答谢词
2015/09/30 职场文书
用基于python的appium爬取b站直播消费记录
2021/04/17 Python