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 相关文章推荐
数据库相关问题
Oct 09 PHP
php代码把全角数字转为半角数字
Dec 10 PHP
使用php来实现网络服务
Sep 15 PHP
PHP学习之数组值的操作
Apr 17 PHP
ThinkPHP自动验证失败的解决方法
Jun 09 PHP
header中Content-Disposition的作用与使用方法
Jun 13 PHP
php多个字符串替换成同一个的解决方法
Jun 18 PHP
php实现可以设置中奖概率的抽奖程序代码分享
Jan 19 PHP
ASP和PHP实现生成网站快捷方式并下载到桌面的方法
May 08 PHP
PHP 实现判断用户是否手机访问
Jan 21 PHP
thinkphp框架实现删除和批量删除
Jun 29 PHP
PHP使用PDO、mysqli扩展实现与数据库交互操作详解
Jul 20 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
mysqli_set_charset和SET NAMES使用抉择及优劣分析
2013/01/13 PHP
PHPStorm2020.1永久激活及下载更新至2020(推荐)
2020/09/25 PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
2020/10/30 PHP
从父页面读取和操作iframe中内容方法
2009/07/25 Javascript
ASP Json Parser修正版
2009/12/06 Javascript
JQuery与JSon实现的无刷新分页代码
2011/09/13 Javascript
jQuery判断密码强度实现思路及代码
2013/04/24 Javascript
SOSO地图JS画出标注和中心点以html形式运行
2013/08/09 Javascript
jquery live()调用不存在的解决方法
2014/02/26 Javascript
jquery增加和删除元素的方法
2015/01/14 Javascript
Javascript 计算字符串在localStorage中所占字节数
2015/10/21 Javascript
JavaScript继承模式粗探
2016/01/12 Javascript
基于NodeJS+MongoDB+AngularJS+Bootstrap开发书店案例分析
2017/01/12 NodeJs
jquery实现左右滑动式轮播图
2017/03/02 Javascript
JS作用域链详解
2017/06/26 Javascript
JavaScript定义函数的三种实现方法
2017/09/23 Javascript
react 不用插件实现数字滚动的效果示例
2020/04/14 Javascript
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
2021/03/01 Vue.js
[02:23]DOTA2英雄基础教程 幻影长矛手
2013/12/09 DOTA
python3实现UDP协议的服务器和客户端
2017/06/14 Python
K-近邻算法的python实现代码分享
2017/12/09 Python
Python双向循环链表实现方法分析
2018/07/30 Python
Python使用pyautogui模块实现自动化鼠标和键盘操作示例
2018/09/04 Python
解决Python找不到ssl模块问题 No module named _ssl的方法
2019/04/29 Python
Python爬虫之App爬虫视频下载的实现
2020/12/08 Python
澳洲国民品牌乡村路折扣店:Country Road & Trenery Outlet
2018/04/19 全球购物
保护环境的建议书
2014/03/12 职场文书
公司授权委托书
2014/04/04 职场文书
社会调查研究计划书
2014/05/01 职场文书
幼儿园课题实施方案
2014/05/14 职场文书
2014年维修工作总结
2014/11/22 职场文书
党员个人总结自评
2015/02/14 职场文书
专业技术职务聘任证明
2015/03/02 职场文书
学生犯错保证书
2015/05/09 职场文书
Pytest中skip skipif跳过用例详解
2021/06/30 Python
Python中22个万用公式的小结
2021/07/21 Python