我運行一個計算機實驗室爲年級學生(3-14喲),並希望創建一個由多個iframe組成的桌面/儀表板頁面,每個頁面指向不同的外部網站 (爲此我們創建了個人帳戶每個孩子);當一個孩子登錄(到儀表板)時,腳本會將她登錄到這些網站,所以她不必這樣做。一次登錄多個網站的腳本。嘗試CURL和PHP。
我有1個服務器和20個工作站,我將它們分別稱爲「myserver」和「mybrowser」。所有這些都在相同的路由器(動態IP)之後。
一個孩子得到一個 'mybrowser' 的工作站上,激發了Firefox和運行desktop.php(在 'MYSERVER' 託管),並得到一個登錄屏幕(爲 'MYSERVER')
'mybrowser' --- http --->'myserver'
登錄後,'myserver'將檢索存儲在其數據庫中的一組用戶名和密碼,並運行CURL腳本將其發送到'外部Web服務器'。
'mybrowser' --- HTTP ---> 'MYSERVER' ---捲曲---> '外部Web服務器'
成功,好了,我想。 變成CURL,運行'myserver',登錄'myserver'而不是'mybrowser'。 刷新後,iframe中的會話仍未登錄。現在我知道了。
然後我想從'myserver'捕獲cookie並將其設置爲'mybrowser',以便'mybrowser'現在可以作爲登錄用戶瀏覽(在iframe內) 。畢竟,我們(所有的「mybrowsers」)都與「myserver」位於相同的路由器後面,因此IP地址相同。
換句話說,我只需要'myserver'將用戶同時登錄到多個外部網站,並且一旦完成將控制權交還給個人用戶的瀏覽器。
我希望答案不會訴諸於使用CURL來顯示和控制整個會話的外部網站,除了會導致一些其他粘性問題的拖動。
由於安全問題,我得到了不允許的細微差別,但是如果所有'mybrowsers'和'myserver'都在同一個路由器後面呢?假設有一種方法可以將登錄cookie從'myserver'複製到'mybrowsers','外部Web服務器'是否知道請求來自不同的機器?
可以這樣做嗎? 謝謝。
你的各種服務使用哪些認證機制?基本認證或特定的登錄頁面?這讓我覺得,正確的解決方案將需要每個瀏覽器的Javascript。 – Purpletoucan 2012-03-16 09:48:53
如果您嘗試使用從myserver啓動的請求自己登錄mybrowser工作站,則簡短答案爲「否」。漫長的回答是「是的,但它會需要這麼多的麻煩,這是不值得花費的」。這是因爲HTTP auth和cookie的範圍僅限於一臺主機,其缺點是您必須構建一個在myserver上運行的完整代理,或者在所有主機文件工作站 - 您需要簡單地將myserver的身份標識爲所有這些外部站點的工作站。 – DaveRandom 2012-03-16 10:06:05