2013-10-21 103 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反对它)。