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实现Ftp用户的在线管理的代码
Mar 06 PHP
PHP Undefined index报错的修复方法
Jul 17 PHP
简单的PHP缓存设计实现代码
Sep 30 PHP
PHP数组传递是值传递而非引用传递概念纠正
Jan 31 PHP
关于shopex同步ucenter的redirect问题,导致script不运行
Apr 10 PHP
PHP四舍五入精确小数位及取整
Jan 14 PHP
thinkphp学习笔记之多表查询
Jul 28 PHP
PHP 实现类似js中alert() 提示框
Mar 18 PHP
php通过array_merge()函数合并两个数组的方法
Mar 18 PHP
PHP对XML内容进行修改和删除实例代码
Oct 26 PHP
PHP实现字符串翻转功能的方法【递归与循环算法】
Nov 03 PHP
通过PHP设置BugFree获取邮箱通知
Apr 25 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进阶学习之垃圾回收机制详解
2019/06/18 PHP
Laravel创建数据库表结构的例子
2019/10/09 PHP
JQuery打造省市下拉框联动效果
2014/05/18 Javascript
js实时获取并显示当前时间的方法
2015/07/31 Javascript
jquery中checkbox使用方法简单实例演示
2015/11/24 Javascript
Angularjs全局变量被作用域监听的正确姿势
2016/02/06 Javascript
js点击返回跳转到指定页面实现过程
2020/08/20 Javascript
谈一谈bootstrap响应式布局
2016/05/23 Javascript
jquery实现折叠菜单效果【推荐】
2017/03/08 Javascript
JavaScript限定范围拖拽及自定义滚动条应用(3)
2017/05/17 Javascript
详解vuejs几种不同组件(页面)间传值的方式
2017/06/01 Javascript
10个最优秀的Node.js MVC框架
2017/08/24 Javascript
浅析JS中什么是自定义react数据验证组件
2018/10/19 Javascript
使用pkg打包Node.js应用的方法步骤
2018/10/19 Javascript
详解基于webpack&gettext的前端多语言方案
2019/01/29 Javascript
如何使用CSS3和JQuery easing 插件制作绚丽菜单
2019/06/18 jQuery
js获取本日、本周、本月的时间代码
2020/02/01 Javascript
在antd Form表单中select设置初始值操作
2020/11/02 Javascript
python学习必备知识汇总
2017/09/08 Python
对python中的乘法dot和对应分量相乘multiply详解
2018/11/14 Python
Python使用sqlalchemy模块连接数据库操作示例
2019/03/13 Python
解决Pycharm后台indexing导致不能run的问题
2019/06/27 Python
python3 线性回归验证方法
2019/07/09 Python
Django 用户认证组件使用详解
2019/07/23 Python
详解Django将秒转换为xx天xx时xx分
2019/09/27 Python
CSS3 input框的实现代码类似Google登录的动画效果
2020/08/04 HTML / CSS
html5 canvas实现圆形时钟代码分享
2013/12/25 HTML / CSS
美国优质马术服装购买网站:Breeches.com
2019/12/16 全球购物
西班牙用户之间买卖视频游戏的平台:Wakkap
2020/03/21 全球购物
css animation配合SVG制作能量流动效果
2021/03/24 HTML / CSS
实习生的自我评价
2014/01/08 职场文书
在校生自我鉴定
2014/01/23 职场文书
理想演讲稿范文
2014/05/21 职场文书
班主任经验交流材料
2014/12/16 职场文书
八月迷情观后感
2015/06/11 职场文书
如何用python清洗文件中的数据
2021/06/18 Python