PHP 跨站发送 POST 请求

学习笔记 2016-10-01 13:59:56 9 0

【摘要】有的时候可以使用 PHP 做一个网络攻击工具,这时候往往是需要使用到跨站发送 POST 请求,本文讲解一下 PHP 如何跨站发送 POST 请求的实例。

例子:

发送 POST 请求的页面是: http://127.0.0.1:8078/1.php

被请求的页面是:http://127.0.0.1:8090/2.php

即 http://127.0.0.1:8078/1.php 向 http://127.0.0.1:8090/2.php 发送 POST 请求。

已知 http://127.0.0.1:8090/2.php 页面的 PHP 代码是:

  1. echo 'name:'.$_POST['name'].', ';
  2. echo 'age:'.$_POST['age'].', ';
  3. echo 'summary:'.$_POST['summary'];

则 http://127.0.0.1:8078/1.php 页面的内容可如下:

  1. /** 
  2.  * 发送post请求 
  3.  * @param string $url 请求地址 
  4.  * @param array $post_data post键值对数据 
  5.  * @return string 
  6.  */  
  7. function send_post($url, $post_data) 
  8. {
  9.   
  10.   $postdata = http_build_query($post_data);  
  11.   $options = array
  12.   (
  13. 		'http' => array
  14. 		(
  15. 			'method' => 'POST',  
  16. 			'header' => 'Content-type:application/x-www-form-urlencoded',  
  17. 			'content' => $postdata,  
  18. 			'timeout' => 15 * 60 // 超时时间(单位:s)
  19. 		)  
  20.   );  
  21.   $context = stream_context_create($options);  
  22.   $result = file_get_contents($url, false, $context);
  23.   return $result;  
  24. }  
  25.   
  26. //	使用方法  
  27. $post_data = array
  28. (
  29. 	'name' => '马富天',  
  30. 	'age' => '18',
  31. 	'summary' => '演示一下 PHP 跨站 POST 请求'
  32. ); 
  33. var_dump(send_post('http://127.0.0.1:8090/2.php', $post_data));
  34. //	输出:string 'name:马富天, age:18, summary:演示一下 PHP 跨站 POST 请求' (length=73)

运行结果:

http://127.0.0.1:8078/1.php 页面如下:

请输入图片名称

http://127.0.0.1:8090/2.php 页面如下:

请输入图片名称

版权归 马富天博客 所有

本文标题:《PHP 跨站发送 POST 请求》

本文链接地址:http://www.mafutian.net/215.html

转载请务必注明出处,小生将不胜感激,谢谢! 喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^

0

0

上一篇《 ubuntu 下搭建 svn 服务器 》 下一篇《 PHP 模拟登录 》
评论审核未开启
表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情
验证码