使用PHP CURL获取安全性答案

时间:2013-06-15 18:19:17

标签: php curl login

此脚本通过主登录表单,但不会在安全问题屏幕上发布。有帮助吗?结果只打印出安全问题屏幕,即使我试图将其设为POST。

    $username = 'XXXX';
    $password = 'XXXX';
    $loginUrl = 'https://www.dandh.ca/v4/dh';

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, $loginUrl);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, 'Login='.urlencode($username).'&PW='.urlencode($password).'&Request=Login&formName=Login&jsEnabled=0&queryString=&Platform=Full&btLogin='.urlencode('Log In'));
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_COOKIEJAR, "my_cookies.txt");
    curl_setopt($ch, CURLOPT_COOKIEFILE, "my_cookies.txt");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36");

    curl_exec($ch);

    curl_setopt($ch, CURLOPT_POSTFIELDS, 'securityAnswer=XXXX&Request=postForm&formName=loginChallengeValidation&btContinue=Continue');

    echo curl_exec($ch);

1 个答案:

答案 0 :(得分:1)

这是因为您没有证书文件。您可以将选项CURLOPT_SSL_VERIFYPEER设置为FALSE。