2013-10-21 36 views
-1

作爲一個學習Web開發的項目,我正在編寫一個Javascript應用程序,允許我的同伴們在我們的Class ID中輸入搜索字段。如果他們輸入正確的課程ID,他們將自動重定向到我們的Google網上論壇頁面。我看到的唯一問題是,因爲我正在爲不同的課程運行多個Google網上論壇,所以我不知道如何隱藏JavaScript代碼。如何隱藏用戶的源代碼中的數據

Example in Pseudocode: 
If (input === 12345){ 
    redirect to (LinkToClass1GoogleGroupsPage.com)} 
Else If (input === 12344){ 
    redirect to (LinkToClass2GoogleGroupsPage.com)} 

這裏的問題是,如果他們單擊鼠標右鍵,查看源代碼,他們會清楚地看到我在尋找什麼樣的輸入的。我是Web開發新手,我想知道實現這樣的最佳方式是什麼。

+0

你不能那樣做。 –

+0

你可能會阻止在頁面上點擊右鍵。一旦開發完成,您可能會縮小腳本,這會使其難以理解。 –

+1

你可以使用ajax來請求發送id的鏈接。所以這個例程將停留在服務器端。 – DontVoteMeDown

回答

2

您無法隱藏JavaScript代碼。如果您有祕密,請將其保存在服務器上。

+2

不錯的做法,但這不是一個答案。 – DontVoteMeDown

+3

這是一個答案。我不知道OP使用什麼服務器端語言(如果有的話),所以不能說其他的東西。 – woz

+0

我同意沃茲。如果有祕密,你必須保存在服務器上。調用Web服務或進行ajax調用以獲取數據。但JavaScript不能保密 –

0

可能最安全的方法是完成可以通過Ajax調用的服務器端函數來返回鏈接。

您使用的服務器端代碼類型取決於您的偏好。

例如ASP.NET Web Service,PHP,ASPX Web Methods

下面的例子Ajax請求的代碼中使用jQuery

var o = new Object(); 
    o.ID = input; 

    var x = JSON.stringify(o); 

    $.ajax({ 
     url: 'SOME URL', //Path to the Server Side function (i.e. Php/ASPX Web Method/Web Service) 
     type: 'GET', 
     dataType: 'JSON', 
     contentType: 'application/json;charset=utf-8;', 
     data: x, 
     success: function (data) { 
      //Method returned without issue 
      redirect to (data.d) 
      //data is a JSON object that contains a "d" property, if your function returns a string then d will be the value of the string. 
     }, 
     error: function (ajaxrequest) { 
      //Ajax call received an error. 
     } 
    }) 
-3

禁用右鍵單擊並按住Ctrl鍵這就是你能做的一切! :D

+2

這仍然不會隱藏代碼。 Ctrl + Shift + I就是繞過這一切所需要的。 – woz

+0

這不是一個可行的方法... – War10ck

0

除非使用服務器端語言重定向,否則不能從字面上隱藏JavaScript中的數據。

然而,你可以做的是混淆你的代碼,有工具可以幫助你做到這一點。

http://javascriptobfuscator.com/

"LinkToClass2GoogleGroupsPage.com" 

結果

var _0x2ec6= ["\x4C\x69\x6E\x6B\x54\x6F\x43\x6C\x61\x73\x73\x32\x47\x6F\x6F\x67\x6C\x65\x47\x72\x6F\x75\x70\x73\x50\x61\x67\x65\x2E\x63\x6F\x6D"];_0x2ec6[0]; 
+1

這使你的代碼不可能調試和混淆!=加密。 – woz

+1

安全通過隱藏通常是一個壞主意,有一天,遲早會有人發現它和所有的地獄破散 – Muleskinner

+0

在隱藏學生數據的情況下,模糊不應該是*是*壞,除非他們是CS學生渴望破解他的網站。 – Azeirah

1

任何在客戶端環境是可讀的,除非它是加密的 - 什麼不JavaScript的工作。您可以使用服務器端環境來處理這個問題,而不用將JavaScript留在node.js,看看this post

使用Ajax請求(jQuerypure)爲​​或您選擇的任何其他服務器端語言,並保持這些行動了用戶的視線。這是更安全,正確,也許只有這樣做。

0

這個cannpt還沒有完成。 HTML5未來可能會實施DRM,但這也取決於瀏覽器選擇使用此功能(Mozilla反對它)。