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 mssql 时间格式问题
Jan 13 PHP
Uchome1.2 1.5 代码学习 common.php
Apr 24 PHP
深入密码加salt原理的分析
Jun 06 PHP
php防注入,表单提交值转义的实现详解
Jun 10 PHP
Thinkphp关闭缓存的方法
Jun 26 PHP
php中mkdir()函数的权限问题分析
Sep 24 PHP
简单谈谈PHP中的Reload操作
Dec 12 PHP
Django 中 cookie的使用
Aug 17 PHP
PHP观察者模式示例【Laravel框架中有用到】
Jun 15 PHP
PHP安装BCMath扩展的方法
Feb 13 PHP
PHP操作路由器实现方法示例
Apr 27 PHP
php提供实现反射的方法和实例代码
Sep 17 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语法(1)
2006/10/09 PHP
关于UEditor编辑器远程图片上传失败的解决办法
2012/08/31 PHP
Laravel 5框架学习之子视图和表单复用
2015/04/09 PHP
PHP 匿名函数与注意事项详细介绍
2016/11/26 PHP
thinkphp关于简单的权限判定方法
2017/04/03 PHP
JavaScript国旗变换效果代码
2008/08/13 Javascript
用Javascript数组处理多个字符串的连接问题
2009/08/20 Javascript
js数字输入框(包括最大值最小值限制和四舍五入)
2009/11/24 Javascript
判断控件是否已加载完成的代码
2010/02/24 Javascript
jQuery之自动完成组件的深入解析
2013/06/19 Javascript
jQuery往textarea中光标所在位置插入文本的方法
2015/06/26 Javascript
浅谈javascript中new操作符的原理
2016/06/07 Javascript
js判断输入字符串是否为空、空格、null的方法总结
2016/06/14 Javascript
浅析JS中对函数function的理解(基础篇)
2016/10/14 Javascript
JavaScript解析JSON数据示例
2019/07/16 Javascript
javascript面向对象三大特征之继承实例详解
2019/07/24 Javascript
ES6 新增的创建数组的方法(小结)
2019/08/01 Javascript
vue+elementui实现点击table中的单元格触发事件--弹框
2020/07/18 Javascript
[02:08]DOTA2英雄基础教程 马格纳斯
2014/01/17 DOTA
Python3利用SMTP协议发送E-mail电子邮件的方法
2017/09/30 Python
python3的输入方式及多组输入方法
2018/10/17 Python
Python3从零开始搭建一个语音对话机器人的实现
2019/08/23 Python
通过实例解析Python调用json模块
2019/12/11 Python
Python对wav文件的重采样实例
2020/02/25 Python
eBay瑞士购物网站:eBay.ch
2018/12/24 全球购物
写好自荐信要注意的问题
2013/11/10 职场文书
证婚人经典证婚词
2014/01/09 职场文书
最新茶叶店创业计划书
2014/01/14 职场文书
自荐信格式简述
2014/01/25 职场文书
售后服务承诺书模板
2014/05/21 职场文书
我是一名护士演讲稿
2014/08/28 职场文书
新学期红领巾广播稿
2014/10/04 职场文书
2014年卫生保健工作总结
2014/12/08 职场文书
交通肇事罪辩护词
2015/05/21 职场文书
英语导游欢迎词
2015/09/30 职场文书
MySQL 语句执行顺序举例解析
2022/06/05 MySQL