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 相关文章推荐
Zend的Registry机制的使用说明
May 02 PHP
Codeigniter生成Excel文档的简单方法
Jun 12 PHP
php+ajax实现无刷新分页的方法
Nov 04 PHP
php防止sql注入简单分析
Mar 18 PHP
PHP简单读取PDF页数的实现方法
Jul 21 PHP
Laravel最佳分割路由文件(routes.php)的方式
Aug 04 PHP
PHP未登录自动跳转到登录页面
Dec 21 PHP
Laravel框架路由设置与使用示例
Jun 12 PHP
thinkphp5使用无限极分类
Feb 18 PHP
PHP 模拟登陆功能实例详解
Sep 10 PHP
php日志函数error_log用法实例分析
Sep 23 PHP
PHP实现创建一个RPC服务操作示例
Feb 23 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
linux下实现定时执行php脚本
2015/02/13 PHP
phalcon model在插入或更新时会自动验证非空字段的解决办法
2016/12/29 PHP
html数组字符串拼接的最快方法
2009/09/16 Javascript
读jQuery之六 缓存数据功能介绍
2011/06/21 Javascript
JS求平均值的小例子
2013/11/29 Javascript
浅谈JavaScript函数参数的可修改性问题
2013/12/05 Javascript
js根据日期判断星座的示例代码
2014/01/23 Javascript
Extjs表单常见验证小结
2014/03/07 Javascript
js实现的复制兼容chrome和IE
2014/04/03 Javascript
JavaScript中函数(Function)的apply与call理解
2015/07/08 Javascript
swtich/if...else的替代语句
2015/08/16 Javascript
JavaScript对Json的增删改属性详解
2016/06/02 Javascript
Bootstrap模态框(modal)垂直居中的实例代码
2016/08/18 Javascript
手机图片预览插件photoswipe.js使用总结
2016/08/25 Javascript
Angular2学习笔记——详解NgModule模块
2016/12/02 Javascript
Bootstrap实现各种进度条样式详解
2017/04/13 Javascript
表格展示利器 Bootstrap Table实例代码
2017/09/06 Javascript
基于React+Redux的SSR实现方法
2018/07/03 Javascript
layui对工具条进行选择性的显示方法
2019/09/19 Javascript
[03:41]DOTA2上海特锦赛小组赛第三日recap精彩回顾
2016/02/28 DOTA
Caffe均值文件mean.binaryproto转mean.npy的方法
2018/07/09 Python
解决Python下json.loads()中文字符出错的问题
2018/12/19 Python
使用Python批量修改文件名的代码实例
2019/01/24 Python
Python中断多重循环的思路总结
2019/10/04 Python
Python loguru日志库之高效输出控制台日志和日志记录
2020/03/07 Python
python根据完整路径获得盘名/路径名/文件名/文件扩展名的方法
2020/04/22 Python
Python实现一个论文下载器的过程
2021/01/18 Python
教育学专业毕业生的自我评价
2013/11/21 职场文书
精彩广告词大全
2014/03/19 职场文书
意外伤害赔偿协议书范本
2014/09/28 职场文书
员工工作能力评语
2014/12/31 职场文书
年度考核个人总结
2015/03/06 职场文书
合同审查法律意见书
2015/06/04 职场文书
Go标准容器之Ring的使用说明
2021/05/05 Golang
图文详解Nginx版本平滑升级方案
2021/09/15 Servers
windows系统安装配置nginx环境
2022/06/28 Servers