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 auth_http类库进行身份效验
Mar 19 PHP
PHP 引用文件技巧
Mar 02 PHP
PHP开发环境配置(MySQL数据库安装图文教程)
Apr 28 PHP
PHP 命名空间实例说明
Jan 27 PHP
MySQL连接数超过限制的解决方法
Jul 17 PHP
php 的加密函数 md5,crypt,base64_encode 等使用介绍
Apr 09 PHP
PHP如何利用P3P实现跨域
Aug 24 PHP
php中__destruct与register_shutdown_function执行的先后顺序问题
Oct 17 PHP
PHP常见数组函数用法小结
Mar 21 PHP
PHP连接MYSQL数据库的3种常用方法
Feb 27 PHP
PHP的new static和new self的区别与使用
Nov 27 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
Apr 04 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/02 无线电
并发下常见的加锁及锁的PHP具体实现代码
2010/10/12 PHP
php 数组随机取值的简单实例
2016/05/23 PHP
php禁用cookie后session设置方法分析
2016/10/19 PHP
php中preg_replace正则替换用法分析【一次替换多个值】
2017/01/17 PHP
javascript 触发事件列表 比较不错
2009/09/03 Javascript
javascript打印输出json实例
2013/11/11 Javascript
js中生成map对象的方法
2014/01/09 Javascript
纯CSS3代码实现滑动开关效果
2015/08/19 Javascript
AngularJS基础 ng-focus 指令简单示例
2016/08/01 Javascript
学习使用Bootstrap页面排版样式
2017/05/11 Javascript
mac下的nodejs环境安装的步骤
2017/05/24 NodeJs
JS实现table表格固定表头且表头随横向滚动而滚动
2017/10/26 Javascript
详解vue axios用post提交的数据格式
2018/08/07 Javascript
create-react-app使用antd按需加载的样式无效问题的解决
2019/02/26 Javascript
js微信分享接口调用详解
2019/07/23 Javascript
vue实现手机端省市区区域选择
2019/09/27 Javascript
vue之组件内监控$store中定义变量的变化详解
2019/11/08 Javascript
《javascript设计模式》学习笔记七:Javascript面向对象程序设计组合模式详解
2020/04/08 Javascript
Jquery ajax书写方法代码实例解析
2020/06/12 jQuery
js实现简单扫雷
2020/11/27 Javascript
Python3.6实现连接mysql或mariadb的方法分析
2018/05/18 Python
python re模块的高级用法详解
2018/06/06 Python
Python shelve模块实现解析
2019/08/28 Python
Python3如何使用range函数替代xrange函数
2020/10/05 Python
Python 数据分析之逐块读取文本的实现
2020/12/14 Python
python音频处理的示例详解
2020/12/23 Python
The North Face北面美国官网:美国著名户外品牌
2018/09/15 全球购物
英国最大的纸工艺品商店:CraftStash
2018/12/01 全球购物
PHP面试题大全
2015/10/16 面试题
临床医学专业个人的自我评价
2013/09/27 职场文书
法学专业毕业生自荐信范文
2013/12/18 职场文书
环保公益策划方案
2014/08/15 职场文书
2016年“六一儿童节”校园广播稿
2015/12/17 职场文书
心得体会该怎么写呢?
2019/06/27 职场文书
Python pyecharts案例超市4年数据可视化分析
2022/08/14 Python