php 伪造post
我想写段代码让php自动登录发布内容~网上自己看了些内容,不过还是遇到一些问题。假设网站a页面是登录页面,a页面填好数据后跳至b页面,b页面检查post的值是否正确,如果...
我想写段代码让php 自动登录 发布内容~
网上自己看了些内容,不过还是遇到一些问题。
假设网站
a 页面是登录页面 ,a 页面填好数据后跳至b 页面 ,b 页面检查post的值是否正确,如果正确则跳至c 页面
我想做的是自动登录c页面发布内容。但是不知道c页面需要伪造什么样的post 数据。(我现在甚至搞不清b页面是post一组加工的数据给c页面 还是 生成一个短时效的cookie) 展开
网上自己看了些内容,不过还是遇到一些问题。
假设网站
a 页面是登录页面 ,a 页面填好数据后跳至b 页面 ,b 页面检查post的值是否正确,如果正确则跳至c 页面
我想做的是自动登录c页面发布内容。但是不知道c页面需要伪造什么样的post 数据。(我现在甚至搞不清b页面是post一组加工的数据给c页面 还是 生成一个短时效的cookie) 展开
1个回答
展开全部
一般登陆是需要COOKIE支持的,用PHP的curl系列方法可以实现:
1.先用curl提交数据到b登陆一下,保存cookie,
2.然后再用crul请求c页面。
对于curl的操作,你就参考下面的程序吧。
$url = "b.php";
$data = “p1=xxx&p2=xxx”;//这里的参数是要post过去的
$curl = curl_init(); // 启动一个CURL会话
curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_USERAGENT, $this->_HTTP_USER_AGENT); // 模拟用户使用的浏览器
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包
curl_setopt($curl, CURLOPT_COOKIEJAR, ‘F:/cookie.txt’); // 存放Cookie信息的文件名称
curl_setopt($curl, CURLOPT_COOKIEFILE, ‘F:/cookie.txt’); // 读取上面所储存的Cookie信息
curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
curl_setopt($curl, CURLOPT_REFERER, '');
$tmpInfo = curl_exec($curl); // 执行操作,这里就是返回的结果
1.先用curl提交数据到b登陆一下,保存cookie,
2.然后再用crul请求c页面。
对于curl的操作,你就参考下面的程序吧。
$url = "b.php";
$data = “p1=xxx&p2=xxx”;//这里的参数是要post过去的
$curl = curl_init(); // 启动一个CURL会话
curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_USERAGENT, $this->_HTTP_USER_AGENT); // 模拟用户使用的浏览器
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包
curl_setopt($curl, CURLOPT_COOKIEJAR, ‘F:/cookie.txt’); // 存放Cookie信息的文件名称
curl_setopt($curl, CURLOPT_COOKIEFILE, ‘F:/cookie.txt’); // 读取上面所储存的Cookie信息
curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
curl_setopt($curl, CURLOPT_REFERER, '');
$tmpInfo = curl_exec($curl); // 执行操作,这里就是返回的结果
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询