详解php curl带 有csrf-token验证模拟提交方法
发布时间:2023-02-13 10:51:11 所属栏目:PHP教程 来源:
导读: 通常为了安全会在表单里加入一个随机的token值来防止csrf攻击。
要想模拟提交有token验证的网站其实也不难。
1.通过正则获取token 2.带上获取到的token模拟提交
下面是一个成功的例子
要想模拟提交有token验证的网站其实也不难。
1.通过正则获取token 2.带上获取到的token模拟提交
下面是一个成功的例子
通常为了安全会在表单里加入一个随机的token值来防止csrf攻击。 要想模拟提交有token验证的网站其实也不难。 1.通过正则获取token 2.带上获取到的token模拟提交 下面是一个成功的例子 目录结构 getForm.php $post['token'] = $match[1]; $post['name'] = '3333333'; $post['password'] = '12121213'; print_r(getResponse('http://a.curl.com:81/post.php',$post,$cookie_file)); function getResponse($url,$data=[],$cookie_file='',$timeout = 3) { if(empty($cookie_file)) { $cookie_file = '.cookie'; } $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_REFERER,"https://www.baidu.com"); //构造来路 curl_setopt($ch,CURLOPT_USERAGENT,"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/54.0.2840.59 Safari/537.36"); if(!empty($data)) { curl_setopt($ch,CURLOPT_POST,true); curl_setopt($ch,CURLOPT_POSTFIELDS,$data); } curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_file);// 取cookie的参数是 curl_setopt ($ch,CURLOPT_COOKIEFILE,$cookie_file); //发送cookie curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout); try { $handles = curl_exec($ch); curl_close($ch); return $handles; } catch (Exception $e) { echo 'Caught exception: ',$e->getMessage(),"\n"; } unlink($cookie_file); } form.php post.php if(empty($_SESSION['token'])) { exit ("session is empty"); } if($_POST['token'] != $_SESSION['token']) { exit ("token "); } else { unset($_SESSION['token']); } echo PHP_EOL; echo "pass"; print_r($_REQUEST); echo PHP_EOL; print_r($_SERVER); 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。 (编辑:应用网_镇江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐