2016-04-12 161 views
0

我想編寫一個程序,該程序將登錄到我學校的網站並檢查我應該瞭解的更新。我對JavaScript比較陌生。我查看了登錄頁面的源代碼,看起來用戶名和密碼是使用action屬性發送的。 (我試圖找到一個按鈕被按下時調用的JavaScript函數,但失敗了,同時action屬性被設置爲一個值。)
I理論上說,如果我有我的登錄憑據,那麼如果我知道數據被髮送到服務器進行驗證,我可以編寫模擬登錄頁面操作的ac程序。如何查看正在發送的內容?從網站HTML表單獲取數據

下面是網站代碼:

 <form action="http://[myschoolsdomainname].edu/login/index.php" method="post" id="login"> 
     <div class="loginform"> 
     <div class="form-label"><label for="username">Username</label></div> 
     <div class="form-input"> 
      <input name="username" id="username" size="15" value="815008955" type="text"> 
     </div> 
     <div class="clearer"><!-- --></div> 
     <div class="form-label"><label for="password">Password</label></div> 
     <div class="form-input"> 
      <input name="password" id="password" size="15" value="" type="password"> 
      <input value="Login" type="submit"> 
      <input name="testcookies" value="1" type="hidden"> 
     </div> 
     <div class="clearer"><!-- --></div> 
     </div> 
    </form> 

注:我不想做任何惡意的事情,我只是想定期自動檢查網站(使用C或Java)來查看是否發佈了作業。我喜歡編碼,我很好奇,如果我能做到這一點,但我不知道從哪裏開始。

+1

您可以使用Chrome的網絡標籤查看發送到服務器的有效負載。如果他們做了正確的事情,你的學校將實施CSRF保護(很可能CSRF令牌被傳遞到頭部,有時它在有效載荷中),因此阻止你能夠做你想做的事情。你實質上是在刮他們的網站,這大多數時候如果你看一個網站的使用條款被標記爲禁止。 –

回答

0

我同意尼克德萊尼 - Chrome上的網絡標籤(在mac上Option+Cmd+i)會告訴你你想看到什麼。點擊打開面板頂部的「網絡」並選中「保留日誌」複選框(如果不這樣做,整頁加載將清除歷史記錄)。

您應該能夠看到所有登錄到站點並呈現後續頁面的HTTP請求。 CSRF可能會也可能不會成爲問題,但只有實驗纔會告訴你。

例如,這是strava.com(一個用於追蹤健身活動的熱門網站)的登錄請求。這告訴我,有一個表格傳遞email,password,authenticity_token(hm,想知道這是什麼?:),utf8remember_me字段。成功的迴應是一個302 redirecthttps://www.strava.com/dashboard,它也設置了一些cookie。

strava login request

如果我跟隨重定向(瀏覽器自動執行此我們),並在儀表盤的HTTP請求查找(當前突出顯示的請求下)我會看到,它表示一個記錄的儀表板頁面的HTML在strava用戶(我)。如果我想要的數據位於儀表板上,那麼面臨的挑戰是在重定向(使用在登錄請求上設置的cookie)並解析響應之後發出「正確的」登錄請求。