2017-09-25 107 views
1

我想爲我的同學創建一個應用程序(C++)。如何在不輸入密碼的情況下發送用戶名和密碼?

通常他們必須去我們的學校網站並進入登錄網站。 在那裏,他們鍵入他們的用戶名和密碼,登錄並搜索他們自己的課程。

我希望我的應用程序要求他們提供課程,用戶名和密碼,將其發送到時間表網站,下載url併爲他們打印時間表。

我只編程C++,所以除了「發送用戶名和密碼到站點」步驟之外,我沒有任何問題。我知道HTML的基礎知識,所以我認爲我必須搜索網站使用的變量名稱,並以某種方式將它們與網址一起發送?我嘗試了一些東西,但我不明白整個事情是如何工作的。

<label id="username-lbl" for="username" class="required" aria-invalid="false"> 
"Benutzername" 
<span class="star">&nbsp;*</span></label> 
<input type="text" name="username" id="username" value class="validate-username required" size="25" required aria-required="true" autofocus> 

這是用戶名字段的HTML。我必須寫如

...URL....\index.html&username="theusername"因爲id是「用戶名」? 我試過這個,它沒有工作..我在互聯網上搜索了很多,但我沒有找到答案。

+0

你不需要引號,第一個變量應該以'?'而不是'&'開頭。 EG'... URL .... \ index.html?username = theusername&otherVariable = other' http://html.net/tutorials/php/lesson10.php – GrumpyCrouton

+0

登錄HTML FORM如何在您嘗試的網站上顯示登錄? –

+0

你需要在表單中檢查屬性'method',如果它是'get',你可以發送url中的變量,如果它是'post'(因爲它應該發送像密碼這樣的敏感數據),你不能做就這樣。 – MarioZ

回答

3

在繼續之前,請檢查<form>元素的method。提交數據的方式發送更改。

  • 如果methodGET(或失蹤),然後提交的數據確實是附加到URL。它與URL的其餘部分(由action屬性指定)分開使用?,名稱 - 值對由&分隔。您還需要對這些值進行正確的URL編碼。

  • 如果methodPOST,則在請求的主體中發送數據。格式取決於enctype

請注意,數據實際上也可能是使用XHR(aka Ajax aka XMLHttpRequest)發送的。

感受工作方式的最簡單方法是打開您喜愛的瀏覽器開發工具的網絡選項卡。它會告訴你它是普通頁面還是XHR,POST或GET等。

請注意,在許多情況下,服務器將設置cookie以保持狀態,因此您必須對側。

+0

這是合法的答案,我不知道爲什麼有人低估了它。 – Kunok

+0

我剛看到方法是POST。這意味着我不能使用ULR方法..現在我該怎麼做? – TypenameT

+0

@TypenameT如果你有權訪問源代碼,你可以簡單地將它切換到GET。否則,傳輸數據將非常困難。 – GrumpyCrouton

0

所以你的C++程序應該收集所需的參數並生成有效的HTTP POST請求。

首先,您應該檢查POST請求的外觀。一個可能的方式做到這一點是使用瀏覽器的開發者工具,網絡標籤:

enter image description here

檢查所有的標題和正文。看看這些東西是如何工作的,並嘗試編寫硬編碼請求,並使用一些HTTP庫從C++程序發送它。

它可能會驗證您的用戶並返回令牌或其他值,您可能會使用它來驗證來自程序的請求,然後爲其他請求包含這些標頭,以便您可以充當用戶並獲取用戶內容。

這也取決於驗證實現,有些策略允許您在保護某些策略的同時執行此操作。但我成功地將這種技術應用於生產穩定應用。我可以發送各種cURL請求,並以終端用戶的身份登錄頁面,而無需登錄或使用瀏覽器。 (我沒有登錄,因爲我剛剛從已登錄(並可能記住)用戶「偷走」了會話)。在你的情況下,你需要首先登錄才能獲得這些頭文件(也使用C++ HTTP庫),然後爲將來的請求獲取數據注入新的頭文件。

+0

在'username'的url中缺少'?'。而且,對於任何新的HTML/PHP開發人員來說,這種解釋都會讓人感到困惑。 – GrumpyCrouton

+0

@GrumpyCrouton現在添加了它,我錯過了,但這只是一個示例字符串,試圖描繪我正在說的內容。 – Kunok

+1

是的,但示例字符串非常重要,因爲它似乎是OP正在努力的部分:P – GrumpyCrouton

相關問題