这里有新鲜出炉的 PHP 面向对象编程,程序狗速度看过来!
PHP(外文名: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言。语法吸收了 C 语言、Java 和 Perl 的特点,入门门槛较低,易于学习,使用广泛,主要适用于 web 开发领域。PHP 的文件后缀名为 php。
这篇文章主要介绍了 php 实现博客,论坛图片防盗链的方法, 涉及 php 字符串结合 session 判定图片的相关操作技巧, 需要的朋友可以参考下
本文实例讲述了 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 程序设计有所帮助。
来源: http://www.phperz.com/article/17/0806/341960.html