php post授权编写,php模拟post行为代码总结(POST方式不是绝对安全)

GET行为比较简单,POST比较复杂一些。这里提供两种方法供选择:第一:手写代码。第二:利用HttpClient php类库

第一种方法:

PHP代码

$flag = 0;

//要post的数据

$argv = array(

'var1'=>'abc',

'var2'=>'你好吗');

//构造要post的字符串

foreach ($argv as $key=>$value) {

if ($flag!=0) {

$params .= "&";

$flag = 1;

}

$params.= $key."="; $params.= urlencode($value);

$flag = 1;

}

$length = strlen($params);

//创建socket连接

$fp = fsockopen("127.0.0.1",80,$errno,$errstr,10) or exit($errstr."--->".$errno);

//构造post请求的头

$header = "POST /mobile/try.php HTTP/1.1";

$header .= "Host:127.0.0.1";

$header .= "Referer:/mobile/sendpost.php";

$header .= "Content-Type: application/x-www-form-urlencoded";

$header .= "Content-Length: ".$length."";

$header .= "Connection: Close";

//添加post的字符串

$header .= $params."";

//发送post的数据

fputs($fp,$header);

$inheader = 1;

while (!feof($fp)) {

$line = fgets($fp,1024); //去除请求包的头只显示页面的返回数据

if ($inheader && ($line == "n" || $line == "")) {

$inheader = 0;

}

if ($inheader == 0) {

echo $line;

}

}

fclose($fp);

?>

第二种方法是:使用httpclient类

PHP代码

$pageContents = HttpClient::quickPost('http://example.com/someForm', array(

'name' => 'Some Name',

'email' => 'email@example.com'

));

使用httpclient类库,可以去官方下载最新的类库,官方地址为:http://scripts.incutio.com/httpclient/index.php

附加一些点php httpclient的其他几个用法

静态方法获取网页:

PHP代码

$pageContents = HttpClient::quickGet('http://bankcha.com')

Get方法获取

PHP代码

$client = new HttpClient('bankcha.com');

if (!$client->get('/')) {

die('An error occurred: '.$client->getError());

}

$pageContents = $client->getContent();

带调试的Get方法获取

PHP代码

$client = new HttpClient('bankcha.com');

$client->setDebug(true);

if (!$client->get('/')) {

die('An error occurred: '.$client->getError());

}

$pageContents = $client->getContent();

带自动转向的Get方法

PHP代码

$client = new HttpClient('www.bankcha.com');

$client->setDebug(true);

if (!$client->get('/')) {

die('An error occurred: '.$client->getError());

}

$pageContents = $client->getContent();

检查页面是否存在

PHP代码

$client = new HttpClient('bankcha.com');

$client->setDebug(true);

if (!$client->get('/thispagedoesnotexist')) {

die('An error occurred: '.$client->getError());

}

if ($client->getStatus() == '404') {

echo 'Page does not exist!';

}

$pageContents = $client->getContent();

伪造客户端

PHP代码

$client = new HttpClient('bankcha.com');

$client->setDebug(true);

$client->setUserAgent('Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.3a) Gecko/20021207');

if (!$client->get('/')) {

die('An error occurred: '.$client->getError());

}

$pageContents = $client->getContent();

登录验证并请求一个网页

PHP代码

$client = new HttpClient('bankcha.com');

$client->post('/login.php', array(

'username' => 'Simon',

'password' => 'ducks'

));

if (!$client->get('/private.php')) {

die('An error occurred: '.$client->getError());

}

$pageContents = $client->getContent();

HTTP授权

PHP代码

$client = new HttpClient('bankcha.com');

$client->setAuthorization('Username', 'Password');

if (!$client->get('/')) {

die('An error occurred: '.$client->getError());

}

$pageContents = $client->getContent();

输出头信息

PHP代码

$client = new HttpClient('bankcha.com');

if (!$client->get('/')) {

die('An error occurred: '.$client->getError());

}

print_r($client->getHeaders());

设置一个域内重定向最多次数

PHP代码

$client = new HttpClient('www.bankcha.com');

$client->setDebug(true);

$client->setMaxRedirects(3);

$client->get('/');

文章来自中国建站:http://www.jz123.cn/text/2425717.html php fsockopen 伪造 post和get方法

作者:samson1989 来源:博客园 发布时间:2011-08-12 09:44 阅读:43 次 原文链接 [收藏]

fsockopen 伪造 post和get方法哦,如果你正在找 伪造 post和get方法的php处理代码这款不错哦。

//fsocket模拟post提交

$purl = "http://localhost/netphp/test2.php?uu=rrrrrrrrrrrr";

print_r(parse_url($url));

sock_post($purl,"uu=55555555555555555");

//fsocket模拟get提交

function sock_get($url, $query)

{

$info = parse_url($url);

$fp = fsockopen($info["host"], 80, $errno, $errstr, 3);

$head = "GET ".$info['path']."?".$info["query"]." HTTP/1.0rn";

$head .= "Host: ".$info['host']."rn";

$head .= "rn";

$write = fputs($fp, $head);

while (!feof($fp))

{

$line = fread($fp,4096);

echo $line;

}

}

sock_post($purl,"uu=rrrrrrrrrrrrrrrr");

function sock_post($url, $query)

{

$info = parse_url($url);

$fp = fsockopen($info["host"], 80, $errno, $errstr, 3);

$head = "POST ".$info['path']."?".$info["query"]." HTTP/1.0rn";

$head .= "Host: ".$info['host']."rn";

$head .= "Referer: http://".$info['host'].$info['path']."rn";

$head .= "Content-type: application/x-www-form-urlencodedrn";

$head .= "Content-Length: ".strlen(trim($query))."rn";

$head .= "rn";

$head .= trim($query);

$write = fputs($fp, $head);

while (!feof($fp))

{

$line = fread($fp,4096);

echo $line;

}

}

?>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/291213.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

走向思考

走向思考 最近因为工作的原因,好几天没有更新文章了...... 今天下午面试回来(以失败告终),睡了一觉,夜里不困,于是就写了写说起工作(我指的是软件行业,其他专业也雷同),怎么说呢?只有亲身体会才…

quartz (一) 基于 Quartz 开发企业级任务调度应用

本文转自:http://www.ibm.com/developerworks/cn/opensource/os-cn-quartz/ Quartz 基本概念及原理 Quartz Scheduler 开源框架 Quartz 是 OpenSymphony 开源组织在任务调度领域的一个开源项目,完全基于 Java 实现。该项目于 2009 年被 Terracotta 收购&…

C# 11 中的参数 null 检查

C# 11 中的参数 null 检查IntroC# 11 将引入一个新的操作符 !! 来简化我们代码中的对于参数的 null 检查,昨天发布的 .NET 7 Preview 1 已经支持了这一语法,感兴趣的不妨来试一下吧,下面我们就来看一下如何使用吧Prepare如果你想在本地代码中…

java之简单的Callback使用总结

1、什么是Callback,什么时候需要使用Callback callback是回调的意思,一般我们需要2个类需要相互掉用,一个类把数据动态传递给另外一个类的时候,可以用这种方式,比如Android里面的Launcher类和LauncherModel类,Launcher…

2017-03-10Git版本回退

1再次修改内容:Git is a distributed version control system. Git is free software distributed under the GPL. 2提交:$ git add readme.txt$ git commit -m "append GPL" [master 3628164] append GPL 1 file changed, 1 insertion(), 1 d…

cms的 php代码,KingCMS/PHP可执行代码

实例:Example :{king:title/}{king:content/}作者:{king:_author/}上面的代码没有什么特别的地方,但客户的要求有了变化,他想在详细页的内容开始前调用缩略图,没有则忽略。所以问题也来了,因为有的文章有缩略图,有的没…

Android之用命令uninstall卸载apk和用 -i 过滤日志忽略大小写

1、卸载apk adb uninstall package adb uninstall ***.apk 上面是正确的,记得是加包名,不是apk 2、过滤日志忽略大小写 adb logcat | grep -i launcher 记住是需要加上 -i

CentOS单机安装k8s并部署.NET 6程序

学习云原生,k8s 是一个基础,为了做一些实验,单机部署是最方便的,下面将介绍在 CentOS 中单机安装 k8s ,并将一个 .NET 6 的程序发布到 k8s 中。环境宿主机:Mac 10.15.7CentOS版本:7.6内存&#…

Elementary OS 系统Java8环境的配置

Elementary OS刚安装完后中文包语言包有点不全,安装后去设置——语言里面更新下后注销就可以了1,官网下载完安装包后直接解压2,设置环境变量安装VIM的情况下直接sudo vi /etc/profile按I健进行编辑,ti添加以下内容:exp…

php session缓存,扫盲:php session缓存至memcached中的方法

memcached是一套分布式的快取系统,当初是DangaInteractive为了LiveJournal所发展的,但被许多软件(如MediaWiki)所使用。这是一套开放源代码软件,以BSDlicens更改为:session.save_handler memcachesession.save_path"tcp://12…

《随笔记录》20170310

1 爱一个人,最低层次的是想通过对方实现某种上位,这是一种寄生的心理;可贵一些的,是把自己认为最好的理所当然地认为对方也会喜欢而强迫对方接纳,这是失了尊重之心;再好一点就是,只是单纯地对对…

MASA Framework - DDD设计(2)

Clean Architecture国内对于Clean Architecture的翻译很多,干净/整洁/清晰。但无论哪一种都说明了它简洁、清晰的特性。早期它长这样看到这张图的同学可能会对另外一张图有印象洋葱架构(Onion)现在长这样看起来好像是亲戚,它们的确也有着千丝万缕的关系分…

Android之什么时候调用onSaveInstance方法的时候(为什么按Home键盘会调用,按Back不调用)

1、函数介绍 1)、onCreate(Bundle savedInstanceState) 方法 Activity 创建时回调 : 该方法会自动传入一个 Bundle 对象, 该 Bundle 对象就是上次被系统销毁时在 onSaveInstanceState 或者 onRestoreInstanceState 中保存的数据 -- 注意 : 只有是系统自动回收的时候才会保存…

SublimeText2 快捷键一览表

Sublime Text比起Notepad,UltraEdit之类Code编辑器来说,其功能有过之而无不及,配合着各种插件使用,Sublime Text在实际的使用中变得非常的顺手——当然,如果你还不顺手,那就请顺手写个插件吧。而在众多功能…

SpringMVC核心分发器DispatcherServlet分析[附带源码分析]

目录 前言DispatcherServlet初始化过程DispatcherServlet处理请求过程总结参考资料前言 SpringMVC是目前主流的Web MVC框架之一。 如果有同学对它不熟悉,那么请参考它的入门blog:http://www.cnblogs.com/fangjian0423/p/springMVC-introduction.html 本…

proto2语法

proto文件 protobuf的定义是通过proto文件进行定义的,一个标准的类型如下: message SearchRequest {required string query 1;optional int32 page_number 2 [default 10];optional int32 result_per_page 3; } 其中message定义了类型名字&#xff0…

WPF 展示视频修改为WriteableBitmap

WPF开发者QQ群:340500857由于微信群人数太多入群请添加小编微信号yanjinhuawechat 或 W_Feng_aiQ 邀请入群需备注WPF开发者 PS:有更好的方式欢迎推荐。接着上一篇,进行WriteableBitmap性能优化修改后运行对比如下:前(C…

linux之类似Windows的资源管理器gnome-system-monitor(可用这个杀死进程)

1、使用 直接运行下面命令gnome-system-monitor 如果没有安装用下面命令安装sudo apt-get install gnome-system-monitor 2、结果 可以点击右键然后杀死相关进程,这也是杀死进程的办法。

HttpClient异常处理手册

HttpClient异常处理手册 开源中国 发表于 2014-08-26 19:44:06异常处理 HttpClient的使用者在执行HTPP方法(GET,PUT,DELETE等),可能遇到会两种主要类型的异常: 传输异常协议异常并不是所有的异常都会传播给HttpClient的用户。Htt…

再读《精通css》02:选择器

2019独角兽企业重金招聘Python工程师标准>>> 1.2 为样式找到目标1、类型选择器用来选择特定类型的原素。比如p,a,h1等等。也叫元素选择器或简单选择器。2、后代选择器用来寻找特定元素或元素组的后代。后代选择器由两个选择器之间的空格表示。…