【十七】防盗链练习
需求:写一个myimport.php,该php显示你的名字,工作,性别...当一个链接不是来自本网站的时候,则跳转到警告页面"小子,想盗链吗?'
目录:
index.html
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title></title> 5 </head> 6 <body> 7 <a href="myimport.php">查看cmf的详细资料</a> 8 </body> 9 </html>
myimport.php
1 <?php 2 // $_SERVER 是一个系统全局变量 当你在访问某网页的时候,apche就会把你的请求主体信息通过php进行二次封装 3 // 所包含的消息,包括请求头消息+服务器本身的一些资源消息 4 foreach ($_SERVER as $key => $value) { 5 echo "$key=$value<br/>"; 6 } 7 //判断是否有来源信息 HTTP_REFERER 8 if (isset($_SERVER['HTTP_REFERER'])) { 9 // 如果存在则继续判断HTTP_REFERER 是否正确(http:www.localhost/http) 10 // 注意: 11 // strpos为在某个字符串中查找某个字符串出现的位置 12 // 如果等于0,意思是在这个字符串中,http://www.localhost/http是开头 13 if (strpos( $_SERVER['HTTP_REFERER'],"http://www.localhost/http")==0) { 14 echo "详细信息为<br/>"; 15 echo "姓名:cmf<br/>"; 16 echo "性别:女<br/>"; 17 echo "工作:it<br/>"; 18 } 19 else{ 20 header("Location:http://www.localhost/http/wearing.php"); 21 } 22 } 23 else{ 24 header("Location:http://www.localhost/http/wearing.php"); 25 } 26 ?>
wearing,php
1 <h1>小子,想盗链吗?</h1>
访问结果:
从index.html跳转到myimport页面时,会有Referer信息,正常跳转
1 Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 2 Accept-Encoding:gzip, deflate, sdch, br 3 Accept-Language:zh-CN,zh;q=0.8 4 Cache-Control:no-cache 5 Connection:keep-alive 6 Cookie:1WEp_2132_ulastactivity=d5c9zp2HJH4r%2FnsIh4f2xHk%2Fj%2B32EQ3aAlwZ4jqY2HGZ28xwJatQ; 1WEp_2132_lastcheckfeed=1%7C1508677289; 1WEp_2132_nofavfid=1; 1WEp_2132_smile=1D1 7 Host:localhost 8 Pragma:no-cache 9 Referer:http://localhost/http/index.html 10 Upgrade-Insecure-Requests:1 11 User-Agent:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
现有一野孩子,想直接跳转到http://www.localhost/http/myimport.php页面,代码如下:
注意:做练习时,该文件时放在桌面,非apache下的htdos目录下
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title></title> 5 </head> 6 <body> 7 <a href="http://www.localhost/http/myimport.php">我是去盗取别人资源的</a> 8 </body> 9 </html>
访问结果如果:
跳转到wearing页面