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+JS无限级可伸缩菜单详解(简单易懂)
Jan 02 PHP
PHP伪静态页面函数附使用方法
Jun 20 PHP
PHP 数组实例说明
Aug 18 PHP
php 404错误页面实现代码
Jun 22 PHP
深入for,while,foreach遍历时间比较的详解
Jun 08 PHP
浅析memcache启动以及telnet命令详解
Jun 28 PHP
php实现压缩多个CSS与JS文件的方法
Nov 11 PHP
PHP实现的sqlite数据库连接类
Dec 12 PHP
详解PHP的Yii框架中自带的前端资源包的使用
Mar 31 PHP
PHP控制前台弹出对话框的实现方法
Aug 21 PHP
PHP三种方式实现链式操作详解
Jan 21 PHP
PHP+MariaDB数据库操作基本技巧备忘总结
May 21 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 超链接 抓取实现代码
2009/06/29 PHP
新浪微博API开发简介之用户授权(PHP基础篇)
2011/09/25 PHP
php计算两个日期相差天数的方法
2015/03/14 PHP
Zend Framework动作助手FlashMessenger用法详解
2016/03/05 PHP
PHP计算数组中值的和与乘积的方法(array_sum与array_product函数)
2016/04/01 PHP
PHP静态延迟绑定和普通静态效率的对比
2017/10/20 PHP
php获取ajax的headers方法与内容实例
2017/12/27 PHP
PHP字符串与数组处理函数用法小结
2020/01/07 PHP
JQuery toggle使用分析
2009/11/16 Javascript
javascript数组操作(创建、元素删除、数组的拷贝)
2014/04/07 Javascript
分享一则javascript 调试技巧
2015/01/02 Javascript
Node.js开源应用框架HapiJS介绍
2015/01/14 Javascript
jQuery的Scrollify插件实现滑动到页面下一节点
2015/07/05 Javascript
Bootstrap每天必学之滚动监听
2016/03/16 Javascript
详解XMLHttpRequest(二)响应属性、二进制数据、监测上传下载进度
2016/09/14 Javascript
Bootstrap模态框使用详解
2017/02/15 Javascript
整理关于Bootstrap列表组的慕课笔记
2017/03/29 Javascript
微信小程序 slider的简单实例
2017/04/19 Javascript
JavaScript瀑布流布局实现代码
2017/05/06 Javascript
Vue全局loading及错误提示的思路与实现
2019/08/09 Javascript
JS操作Fckeditor的一些常用方法(获取、插入等)
2020/02/19 Javascript
[01:38]DOTA2辉夜杯 欢乐的观众现场采访
2015/12/26 DOTA
dataframe设置两个条件取值的实例
2018/04/12 Python
python单向循环链表原理与实现方法示例
2019/12/03 Python
Django调用支付宝接口代码实例详解
2020/04/04 Python
前端面试必备之CSS3的新特性
2017/09/05 HTML / CSS
html5 svg 中元素点击事件添加方法
2013/01/16 HTML / CSS
莫斯科购买书籍网站:Book24
2020/01/12 全球购物
新闻编辑自荐信
2013/11/03 职场文书
高中生的自我鉴定范文
2014/01/24 职场文书
小学英语教学反思
2014/01/30 职场文书
社区先进事迹材料
2014/05/19 职场文书
房屋所有权证明
2014/10/20 职场文书
小学教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
医生辞职信范文
2015/03/02 职场文书
python 如何做一个识别率百分百的OCR
2021/05/29 Python