2012-06-29 27 views
2

我一直在努力解決這類問題一段時間了,似乎無法找到任何信息或示例代碼來在PHP和JavaScript之間傳輸一些數據。 我看到了很多方法來做到這一點,但並不安全。我的意思是,當你在系統之間傳輸一些變量數據時,它會直接顯示在頁面的視圖源窗口中,當它被加載時。確切需要的是一種傳輸數據的方式,但是安靜而安全,以便在加載頁面時不會顯示在用戶端。將變量從php傳遞給javascript(安全)

所以簡而言之,有沒有辦法做到這一點,並可能如何?

我已經嘗試過,使用XML文件傳輸數據,JSON也是直接使用echo +,或者在php中的?>縮寫之後。但是,到目前爲止,我使用的每種方法都會在加載時顯示在頁面的源代碼中。

+0

也許來自JS的AJAX調用來獲取值?或者可能編碼它(base64),但如果它非常重要(如密碼),那麼沒有什麼會幫助你。 – Dementic

+0

你到底在做什麼(「安全地傳遞參數」不是描述,「阻止用戶看到頁面的源代碼」)? – ty812

+1

您在JavaScript中執行的任何操作都可以由用戶訪問,因爲它是客戶端。 PHP不能將'變量'傳遞給JavaScript,因爲它們發生在不同的地方,在不同的時間,因此不知道彼此的存在。 PHP只能打印數據,JavaScript可以攔截並採取行動。正如馬丁所問,告訴我們你想要達到的目標,我們可能會提出一種方法,但它聽起來並不像你目前可行的方法。 – Utkanos

回答

4

由於JavaScript和網絡的特性,您真正要問的是不可能的。有幾種方法可以混淆數據,並將其隱藏在只能請求一次的xhttp/ajax請求中。但爲了將數據發送到客戶端,客戶端必須能夠讀取數據,這意味着知道他們在做什麼的用戶(即安裝了FireBug並可以編寫JavaScript)可以隨時對其進行解碼並查看它。

如果我是你,我會查看一些簡單的編碼或加密JSON形式(並通過HTTPS通過ajax/xhttp請求數據),這將推遲大多數人,但技術上的精明仍然能夠解決解密內容的方式。但是,如果內容需要100%安全 - 即使是實際使用該站點的用戶,也不希望將數據發送給客戶端。

基本上歸結爲你實際發送的數據是什麼?如果這是一個需要客戶端數據執行特定計算的問題,請問自己 - 是否可以只將JavaScript中涉及的用戶輸入發回PHP(通過ajax/xhttp),然後讓PHP返回答案。這樣PHP只需要訪問你的敏感數據。