2015-12-01 81 views
1

我們正在與第三方進行交流,以將他們的一些數據包含在我們的網站上,他們希望通過iframe來實現,因爲響應原因,我不喜歡這種iframe。人們可以用javascript做些什麼?

他們提供的其他選項是javscript文件列入這將需要一個參數來了解DOM元素,把結果英寸

基本上,這讓他們訪問我們網站的JavaScript的範圍中,如果他們想要的東西可以做像隱藏的東西對象等東西

我的問題是,有什麼安全的事情,我必須考慮?他們可以在他們的JavaScript例如寫最終從我們的服務器讀取.php文件的惡意代碼,並從配置文件等獲取密碼?或者是他們可以做DOM相關的唯一事情?

+1

嗯,究竟如何遠程「讀取」一個PHP文件?如果你的服務器配置正確,通過http打到任何php文件都會執行這個文件,你只能看到腳本的OUTPUT。如果你獲得了PHP源代碼,那麼你應該首先解僱建立你的服務器的人。如果關鍵的配置文件存儲在你的網站的文檔根目錄下,那麼你應該在解僱那個人的時候着火。 –

回答

2

他們可以:

  1. 用戶的Cookie採取控制,包括讀取和修改 他們。

  2. 將用戶重定向到他們想要的任何站點。

  3. 將他們想要的任何代碼嵌入到頁面中。

他們不能:

  1. 訪問PHP文件直接。
  2. 直接訪問任何服務器文件。

Javascript在瀏覽器中運行,而不是在服務器上運行。

1

您不應該擔心PHP文件或配置文件,但竊取會話cookie或其他XSS風格的攻擊肯定會成爲問題。

爲什麼他們不能/不會以API的形式提供數據?

+0

ajax請求必須來自他們的服務器,因爲該服務器使用HTTP訪問控制標頭,這將忽略來自我們的服務器的訪問 –

+0

@Jebble不幸的是,你在帖子中描述的兩種方法也會有這個問題。最簡單的方法是讓他們將您添加到他們的ACL白名單。 –

+0

我試過了,根本不會發生悲傷。據他們說,因爲Ajax調用是從他們的服務器進行的,結果只是顯示在我們的網站上,訪問不會被他們的服務器拒絕。 竊取Cookie部分:他們可以保存來自登錄用戶的所有cookie,並且最終以使用者身份登錄爲正確的用戶? –

2

你基本上給他們信任XSS特權。
如果你可以在網絡瀏覽器中做某些事情(使帖子,「瀏覽」一個頁面等),你可以使用JavaScript自動化它。除非您(或您的用戶)可以,否則他們將無法上傳/修改您的PHP文件。

對用戶來說,你是在給他們模擬你的能力。
給你,你給他們模仿用戶的能力。

2

他們可以在他們的JavaScript例如寫最終從我們的服務器讀取.php文件並從配置文件獲取密碼等惡意代碼?

他們可以做你包括你的頁面,他們可以在JavaScript代碼做網頁上的JavaScript代碼什麼。所以這可能只是你可以做任何事情的客戶端。它包括(例如)抓取暴露給您的頁面的會話信息,並能夠在其他地方發送該信息。

如果你不相信他們不這樣做,不要在他們的頁面中包含他們的JavaScript。

我們談論到第三方,包括他們的一些數據的我們

在網站上他們有使可作爲數據的信息,而不是代碼,您通過Ajax請求,並讓他們針對來自您的來源的請求啓用Cross-Origin Resource Sharing作爲有問題的網址。然後,你知道你只是獲取他們的數據,而不是讓他們運行代碼。

請注意,使用JSONP而不是CORS將使他們能夠再次運行代碼,所以如果您不信任它們,它必須是真正的CORS的ajax。

+0

不幸的是,他們拒絕向我們提供服務器的訪問權限,也拒絕爲我們編寫API。我們的客戶希望他們的網站上的數據,只是說它是這個或一個iframe。 –

+0

@Jebble:聽起來像您的選擇要麼使用iframe,要麼信任它們。 –

+0

很明顯,99%的信任仍然不足以支持iframe。謝謝 –

相關問題