PHP5盗链函数(referfile)

 更新时间:2016年11月25日 16:09  点击:1285



PHP5盗链函数(referfile)
作者:axgle

功能:任何以‘HTTP_REFERER’为主要特征的防盗链技术将通通失效,顷刻间便灰飞烟灭。

<?php
/**
@title:PHP5盗链函数
@author:axgle
@filename:referer.php
@contents:This is a demo that show referer made success
*/

if($_GET[''id'']) {
        echo $_SERVER[''HTTP_REFERER''];
} else {
        echo referfile(''http://localhost/referer.php?id=1'',''http://axgle.is.good/'');
      
}

function referfile($url,$refer='''') {
        $opt=array(''http''=>array(''header''=>"Referer:$refer"));
        $context=stream_context_create($opt);
        return file_get_contents($url,false,$context);
}

?>



【PDO配置】
1、确保PHP版本为5.2.5以上(主要是我用的5.2.5,第一次不知道用的5.1.x的,结果一直搞不好~_~)
2、在php.ini中找到Dynamic Extensions扩展部分,去掉extension=php_pdo.dll前面的分号
3、去掉相应数据库PDO扩展前面的分号,如:extension=php_pdo_mysql.dll

【范例中数据库】
CREATE TABLE tablename (
    id mediumint(8) UNSIGNED NOT NULL AUTO_INCREMENT,
    str varchar(50) NOT NULL DEFAULT '''',
    PRIMARY KEY (id)
);

【程序范例】
<?php
/*
*        数据库配置信息
*/
$dsn = "mysql:host=localhost;dbname=test";
$user = ''root'';
$passwd = ''123456'';

/*
*        链接数据库,并测试是否链接成功
*/
try{
        $db = new PDO($dsn, $user, $passwd);
}catch (PDOException $e)
{
        echo "链接数据库失败!";
        print "异常信息: ". $e->getMessage() . "<br/>";
        print "异常文件: " . $e->getFile() . "<br/>";
        print "异常行号: " . $e->getLine() . "<br/>";
        exit();
}

/*
*        插入
*/
//$sql = "INSERT INTO tablename SET str = ''Hello''";
//$count = $db->exec($sql); //返回值为影响的行数

/*
*        删除
*/
//$sql = "DELETE FROM tablename WHERE str = ''Hello'' LIMIT 1";
//$count = $db->exec($sql); //返回值为影响的行数

/*
*        查询
*/
//预处理需要查询的SQL语句
//$db->setAttribute(PDO::ATTR_CASE, PDO::CASE_NATURAL); //列名按照原始的方式(字段)
$sql = "SELECT * FROM tablename WHERE id < :id AND str = :string"; //sql语句(参数绑定方式)
$query = $db->prepare($sql); //预处理

//用一组绑定参数执行一遍查询
$query->execute(array('':id''=>1, '':string''=>''Hello'')); //处理语句(参数绑定方式)
//$query->setFetchMode(PDO::FETCH_ASSOC); 关联数组形式(只通过字段名下标访问数组内容)
while($item =

我程序里要用到PHP连接到MYSQL,所以先要将已经复制到c:windows 下的 php.ini 中看看。

将 extension=php_mysql.dll 前面的 ; 分号给去掉.

phpexe php_mysql.dll  的文件, 也复制到 c:windows, 或者是 path 路径中已经设置好的地方。

然后。可以用下面的一段代码来测试下,是否正常连接了。

  本机环境: mysql-4.1.22-win32

MYSQL : root 口令123

数据库:deepthroat

能正常显示了,那就OK



<?php
// 连接,选择数据库
$link = mysql_connect(''localhost'', ''root'', ''123'')
    or 
die(''Could not connect: '' . mysql_error());
echo ''Connected successfully'';
mysql_select_db(''deepthroat'') or die(''Could not select database'');

// 执行 SQL 查询
$query = ''SELECT * FROM dt_menu'';
$result = mysql_query($query) or die(''Query failed: '' . mysql_error());

// 用 HTML 显示结果
echo "<table> ";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
    
echo " <tr> ";
    
foreach ($line as $col_value) {
        
echo " <td>$col_value</td> ";
    }
    
echo " </tr> ";
}
echo "</table> ";

// 释放结果集
mysql_free_result($result);

// 关闭连接
mysql_close($link);
?> 


<


本文的作用是为了全方位的避免因使用UTF-8编码而产生的乱码问题,不包含具体的乱码解决方案和编码转换的内容。对于UTF-8编码的深入了解,请参阅:《PHP匹配UTF-8中文字符的正则表达式》
1、编辑器:不要使用任何微软的编辑器,什么Frontpage,Web Designer,记事本,写字板什么的,能丢的全部丢开,因为这些编辑器会在你的UTF-8文档前面产生BOM,关于BOM的具体说明,可以在 这里找到,当年我直接拿记事本转UTF-8覆盖原文件,造成大量代码损毁,至今记忆犹新。
2、MySQL数据库:注意建库,建表,建字段(注意有三处)的时候,都要选用utf8_general_ci的整理格式(Collation),在PHP使用mysql_connect()函数连接数据之后,需要加上一句:
mysql_query(''set names "utf8"'');

3、PHP:
使用mbstring库,不要使用iconv库。
使用preg而不要使用ereg来处理字符。
使用htmlentities()函数,html_entity_decode()函数的时候要带上第三个参数:
CODE:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
&lt;?php
$str = "<a href=''test''>中文</a>";
echo htmlentities($str,ENT_COMPAT,"UTF-8"); //显示(源代码里面) <a href=''test''>涓?


  说起PHP近几年的发展,可以说是突飞猛进。EDC在2006年的统计信息表明PHP已经跻身全球三个编程语言的行列,并且其是以Web脚本语言的身份参与竞争的。其它两个语言(Java和.net)都是通用的语言(可以开发多种应用)。但是,令人难以置信的是,PHP目前的发展速度是37%明显高于其它两种语言。

  同时在国内,PHP的发展也非常迅速。目前在各大网站云集的北京,PHP几乎是无处不在。百度、新浪、搜狐、TOM等等各大互联网门户都在广泛使用这PHP。同时,近两年来北京多处许多小型的门户站点,也是大部分使用了PHP的技术。就连PHP的工程师需求量都发幅度提高。PHP在国内的官方PHPChina.com网站透露,目前的在京PHP工程师的待遇的平均值可以比ASP工程师的高出一倍。

  那么,为什么PHP可以在近年来发展如此迅速呢。其实跟Web的迅猛发展是紧密联系在一起的。另外,LAMP的迅速发展使得PHP的应用也更加广泛了。那么这里我就Web迅猛发展这个大的环境,和大家下为什么PHP能在把握住这个机会,一举成功。

  总结起来,PHP能发展起来有三个原因:

  ·基于Web量身定制,Web语言的首选,LAMP架构安全稳定

  ·简单,开发快速,扩展性强

  ·PHP企业级应用的发展

  基于Web量身定制,Web语言的首选,安全稳定

  在参加今年的LAMP大会的时候,我看到了PHP的创始人之一,Zeev Suraski。也听取了他在为我们做的PHP的整体介绍的报告。在听他讲当初开发PHP的初衷的时候他说到,他和Andi就是需要一个非常适合于Web 的语言来编写一个课题,于是他们就找到了最好的PHP/HI。在他们完成项目的同时,他们发现PHP/HI非常有技术前景,于是他们就加入了PHP的研发,后来又一起开发了Zend Engine,并免费嵌入到PHP当中,发布了PHP4从而让PHP真正发展起来。

  我们可以发现,再后来PHP一些列的版本升级中,PHP一直围绕着Web来增加它的特性,这点对于准备长期使用PHP来作为网站的技术承载平台的公司来说是非常合适的。关于这点Zeev本人也表示在PHP5确定版本的时候不得不把一些很不错的功能去掉,就是为了延续PHP的稳定的特点。

  曾经听一个网站的技术经理说过:“如果做软件,如果要做网站就用PHP!”。当时我们都以为这个是一个笑谈,现在想起来还真是这样。目前,许多的网站项目的负责人都很信任PHP。觉得PHP在支持Web方面非常到位。

  关于PHP应用的安全,则得益于PHP是开源的。在PHP社区有500多个PHP编写工程师在支持着PHP,源代码的公布为它赢得广泛的支持。当然,在讲到PHP的安全性的时候,不能不提到LAMP架构。基于LAMP平台的稳定性从它在国内各大网站的服务器的使用量就可以得以证明。

  简单,开发快速,扩展性强

  2006LAMP大会的时候,我发现Zeev在谈到PHP的特性的时候第一个就谈到使用简单。而且强调了这就是PHP能够成功的原因。而且 Zeev也强掉了PHP将保持简单的风格,以便用户可以方便快捷地开发PHP应用程序。据说,美国上次受的飓风袭击的时候,特意为此搭建的网站就是用 PHP的,一共才用了3天。虽然这个时间看上去很短,但是经过我们仔细分析以后,也是有可能的。

  我个人认为不单单是国外,国内也是这样的。个人认为,简单带来的好处就是企业的快速成长的必备条件。用PHP来做Web站点可以在非常短的时间内搭建起一个小规模的网站。因此造就了大批的“个人站长”。同时,在国内也诞生了不少以PHP

  另外,PHP的扩展性也非常好,如果用PHP开发产品的话,可以非常快地根据客户的需求进行定制。而且在PHP广泛的社区里面,可以为PHP的开发工程师提供大量的资源支持。PHP的开发工程师可以很快地获取他所需要的项目、方案或者具体的功能代码。在这点上,许多建站的产品的推广企业也有很深的感受。例如,论坛、CMS还有在线购物等等。

  PHP企业级应用的发展

  众所周知,PHP历来被认为是草根阶层的变成语言。因此困扰PHP发展的很大因素就是大企业的认可。政府、大企业等PHP项目的增加在近几年的表现也是很突出的,这点可能在国外比较明显,它大幅度地提高了大家在选择PHP时候的信心。

  从这两年全球的PHP年会来看,许多的大厂商都开始纷纷关注PHP,参加年会。甚至于像IBM、Oracle等公司直接与Zend公司进行合作,推广并提高PHP在大型项目里面的功能。IBM公司本身也来大量采用PHP来实现它的项目。

  此外,直接一提的是,大型的项目考虑开源的LAMP架构的时候会很看重是否可以获得一些技术支持。而关于PHP的技术支持,还是应该关注它的创始公司Zend 技术公司。Zend公司确实在把PHP推向企业级应用方面做了许多工作。
[!--infotagslink--]

相关文章

  • php正确禁用eval函数与误区介绍

    eval函数在php中是一个函数并不是系统组件函数,我们在php.ini中的disable_functions是无法禁止它的,因这他不是一个php_function哦。 eval()针对php安全来说具有很...2016-11-25
  • php中eval()函数操作数组的方法

    在php中eval是一个函数并且不能直接禁用了,但eval函数又相当的危险了经常会出现一些问题了,今天我们就一起来看看eval函数对数组的操作 例子, <?php $data="array...2016-11-25
  • Python astype(np.float)函数使用方法解析

    这篇文章主要介绍了Python astype(np.float)函数使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-06-08
  • Python中的imread()函数用法说明

    这篇文章主要介绍了Python中的imread()函数用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-16
  • C# 中如何取绝对值函数

    本文主要介绍了C# 中取绝对值的函数。具有很好的参考价值。下面跟着小编一起来看下吧...2020-06-25
  • C#学习笔记- 随机函数Random()的用法详解

    下面小编就为大家带来一篇C#学习笔记- 随机函数Random()的用法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • 金额阿拉伯数字转换为中文的自定义函数

    CREATE FUNCTION ChangeBigSmall (@ChangeMoney money) RETURNS VarChar(100) AS BEGIN Declare @String1 char(20) Declare @String2 char...2016-11-25
  • Android开发中findViewById()函数用法与简化

    findViewById方法在android开发中是获取页面控件的值了,有没有发现我们一个页面控件多了会反复研究写findViewById呢,下面我们一起来看它的简化方法。 Android中Fin...2016-09-20
  • C++中 Sort函数详细解析

    这篇文章主要介绍了C++中Sort函数详细解析,sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变...2022-08-18
  • 详解Maven profile配置管理及激活profile的几种方式

    这篇文章主要介绍了详解Maven profile配置管理及激活profile的几种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-26
  • PHP用strstr()函数阻止垃圾评论(通过判断a标记)

    strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 false。语法:strstr(string,search)参数string,必需。规定被搜索的字符串。 参数sea...2013-10-04
  • PHP函数分享之curl方式取得数据、模拟登陆、POST数据

    废话不多说直接上代码复制代码 代码如下:/********************** curl 系列 ***********************///直接通过curl方式取得数据(包含POST、HEADER等)/* * $url: 如果非数组,则为http;如是数组,则为https * $header:...2014-06-07
  • php中的foreach函数的2种用法

    Foreach 函数(PHP4/PHP5)foreach 语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。...2013-09-28
  • C语言中free函数的使用详解

    free函数是释放之前某一次malloc函数申请的空间,而且只是释放空间,并不改变指针的值。下面我们就来详细探讨下...2020-04-25
  • PHP函数strip_tags的一个bug浅析

    PHP 函数 strip_tags 提供了从字符串中去除 HTML 和 PHP 标记的功能,该函数尝试返回给定的字符串 str 去除空字符、HTML 和 PHP 标记后的结果。由于 strip_tags() 无法实际验证 HTML,不完整或者破损标签将导致更多的数...2014-05-31
  • SQL Server中row_number函数的常见用法示例详解

    这篇文章主要给大家介绍了关于SQL Server中row_number函数的常见用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-08
  • PHP加密解密函数详解

    分享一个PHP加密解密的函数,此函数实现了对部分变量值的加密的功能。 加密代码如下: /* *功能:对字符串进行加密处理 *参数一:需要加密的内容 *参数二:密钥 */ function passport_encrypt($str,$key){ //加密函数 srand(...2015-10-30
  • php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法

    最近遇到一个问题,就是在使用php的mail函数发送utf-8编码的中文邮件时标题出现乱码现象,而邮件正文却是正确的。最初以为是页面编码的问题,发现页面编码utf-8没有问题啊,找了半天原因,最后找到了问题所在。 1.使用 PEAR 的...2015-10-21
  • C#中加载dll并调用其函数的实现方法

    下面小编就为大家带来一篇C#中加载dll并调用其函数的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • C#虚函数用法实例分析

    这篇文章主要介绍了C#虚函数用法,实例分析了C#中虚函数的功能与基本使用技巧,需要的朋友可以参考下...2020-06-25