php实现博客,论坛图片防盗链的方法

yipeiwu_com7年前PHP代码库

本文实例讲述了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 curl用法总结》、《PHP图形与图片操作技巧汇总》、《PHP数组(Array)操作技巧大全》、《PHP常用遍历算法与技巧总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《php正则表达式用法总结》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》及《php常见数据库操作技巧汇总

希望本文所述对大家PHP程序设计有所帮助。

相关文章

增加反向链接的101个方法 站长推荐

增加反向链接的101个方法 站长推荐

Andy Hagans和Aaron Wall写了一篇“增加反向链接的101个方法”,非常有参考价值。他们的帖子发出不到几小时,几乎所有重要的SEO bloggers都建议大家去看。这就是...

PHP-FPM实现性能优化

简介: PHP-FPM 是一个 PHP FastCGI 管理器,一般 Nginx 上面跑 PHP 程序都会将 PHP 程序丢给 PHP-FPM 来解析。好了,就这样! PHP 5.4 开...

标准PHP的AES加密算法类

分享一个标准PHP的AES加密算法类,其中mcrypt_get_block_size('rijndael-128', 'ecb');,如果在不明白原理的情况下比较容易搞错,可以通过mcr...

PHP获取文件绝对路径的代码(上一级目录)

PHP获取文件绝对路径 复制代码 代码如下: <?php echo __FILE__ ; // 取得当前文件的绝对地址,结果:D:\www\test.php echo dirnam...

PHP实现手机号码中间四位用星号(*)隐藏的自定义函数分享

php屏蔽电话号码中间四位: 复制代码 代码如下: Method 1: function hidtel($phone){     $IsWhat...