簡體   English   中英

嘗試使用PHP和cURL登錄到ASPX網站

[英]Trying to login to an ASPX website using PHP and cURL

幾天以來,我正嘗試使用cURL登錄到特定網站。

該網站是用ASP.net編寫的,而我使用的是PHP5.x。

到目前為止,我已經嘗試過但沒有成功的方法:

    $url = "https://intouch.techdata.com/default.aspx?countrycode=&CssStyleSheet=default.css&CultureCode=&local_url=&MPSearchId=&Culture=&cos=";
    $cookie_file_path = 'cookies.txt';
    $agent = "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36";

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);         
    curl_setopt($ch, CURLOPT_USERAGENT, $agent); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path); 
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path); 
    curl_setopt($ch, CURLOPT_POSTREDIR, 2);
    curl_setopt($ch, CURLOPT_SSLVERSION, 3);
    curl_setopt($ch, CURLOPT_POST, 1); 

    $post_data['__VIEWSTATE'] = "/wEPDwUKLTg1MDYwODIwOA9kFgRmDxYCHgRocmVmBRcvaW1hZ2VzL2RlZmF1bHQuY3NzP3Y9M2QCAQ9kFhgCAw8PFgIeBFRleHQFKldlbGNvbWUgdG8gdGhlIE9ubGluZSBQcm9kdWN0IENhdGFsb2d1ZSBvZmRkAgUPDxYCHwEFIVJlZ2lzdGVyZWQgdXNlcnMgZW
    50ZXIgPGJyPiBoZXJlOmRkAgsPFgIeB1Zpc2libGVoFgICAQ8PFgIfAQUJUGFzc3dvcmQ6ZGQCDQ8PZBYCHgxhdXRvY29tcGxldGUFA29mZmQCDw8PFgIfAQUPQWNjb3VudCBOdW1iZXI6ZGQCEQ8PFgIfAQUJVXNlcm5hbWU6ZGQCEw8PFgIfAQUJUGFzc3dvcmQ6ZGQCFQ8PFgIfAQUFTG9naW4WAh4H
    b25jbGljawWaAWphdmFzY3JpcHQ6cmV0dXJuIFZhbGlkYXRvcignVXNlcm5hbWU6JywnUGxlYXNlIGVudGVyIGFuIGFjY291bnQgbnVtYmVyJywnUGxlYXNlIGVudGVyIHlvdXIgdXNlcm5hbWUnLCdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gY2hhbmdlIHRoZSBwYXNzd29yZCcsJzAnKTtkAhcPDxY
    CHwEFBUxvZ2luFgIfBAWaAWphdmFzY3JpcHQ6cmV0dXJuIFZhbGlkYXRvcignVXNlcm5hbWU6JywnUGxlYXNlIGVudGVyIGFuIGFjY291bnQgbnVtYmVyJywnUGxlYXNlIGVudGVyIHlvdXIgdXNlcm5hbWUnLCdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gY2hhbmdlIHRoZSBwYXNzd29yZCcsJzAnKT
    tkAhkPDxYCHwEFBVJlc2V0FgIfBAUcamF2YXNjcmlwdDpyZXR1cm4gZm5SZXNldCgpO2QCHQ8PFgIfAQUOUGFzc3dvcmQgbG9zdD8WBB8EBZoBamF2YXNjcmlwdDpyZXR1cm4gVmFsaWRhdG9yKCdVc2VybmFtZTonLCdQbGVhc2UgZW50ZXIgYW4gYWNjb3VudCBudW1iZXInLCdQbGVhc2UgZW50ZXIgeW
    91ciB1c2VybmFtZScsJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBjaGFuZ2UgdGhlIHBhc3N3b3JkJywnMScpOx8ABTRqYXZhc2NyaXB0OmdvKCdERUZBVUxUQ2hwLkNTUycsJycsJ2RlZmF1bHQuY3NzJywnJyk7ZAIfDw8WBB8BBRBCZWNvbWUgYSBQYXJ0bmVyHwJoFgIfAAU0amF2YXNjcmlwdDpCZW
    NvbWVBUGFydG5lcigncD1CZWNvbWVQYXJ0bmVyJmM9SG9tZScpO2RkxaBIRC+v+vJslZdN4xAvkZL9HCY=";
    $post_data['__EVENTVALIDATION='] = "/wEWEALxt7yuBwKs+5bqDwKl1bKzCQK1qbSRCwLFp6CQBwLCi9reAwKgt7D9CgKY5fiZAQLnxpq/AgKT2dzTDQK7hrWFCgKsuviBAQLnw+O9BAKywsaqBgL43fTxBQLonLasDzE6BdS22kepzqbhlPQS//T5e2ty";
    $post_data['txtID'] = 'idnumber';
    $post_data['txtUserName'] = 'username';
    $post_data['txtDupPassword'] = 'password';
    $post_data['Session_ID'] = '';
    $post_data['sessionid'] = '';
    $post_data['errorCode'] = '';
    $post_data['hdnSavedSearch'] = '';
    $post_data['hdnProdIds'] = '';
    $post_data['hdnMPSearchId'] = '';
    $post_data['hdnDisplaytype'] = '';
    $post_data['hdnMode'] = '';
    $post_data['hdnProductid'] = '';
    $post_data['hdnQuantity'] = '';
    $post_data['hdnBanner'] = '';
    $post_data['cos'] = '';
    $post_data = http_build_query($post_data);
            curl_setopt( $ch, CURLOPT_POSTFIELDS, $post_data);

            $out = curl_exec($ch);
            echo $out;

問題是我收到服務器運行時錯誤作為響應。 我真的不知道我應該如何形成網址。 有什么幫助嗎?

提前致謝

編輯:這是關於curl的另一篇文章: 嘗試使用CURL連接到ASPX站點嗎?

我不確定您使用curl怎么做,但是將憑據發布到網站上進行登錄相對容易。有關此問題,請參閱以下帖子:

以編程方式登錄到站點

使用c#/ ASP.NET以編程方式偽造網站登錄名

該過程如下所示:

(1)向網頁發出GET請求;(2)從收到的響應中獲取__VIEWSTATE;(3)在網址中發布所需的憑證,並以以下格式附加:

yourtargetwebsiteaddress.com/targetloginpage?__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE={VS}&__EVENTVALIDATION={EV}&{UserNameControl}={UN}&{PasswordControl}={PW}

哪里

  • {VS}是您最初請求中的View狀態
  • {EV}是您最初請求中的事件驗證
  • {UserNameControl}是用戶名控件的ID, {UN}是您要發布的用戶名
  • {PasswordControl}是網頁上密碼控件的ID, {PW}是您要發布的密碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM