作为学习Web开发的一个副项目,我正在用Javascript编写一个Web应用程序,允许我的同学输入我们的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 :(得分:2)
您无法隐藏JavaScript代码。如果您有秘密,请将其保留在服务器上。
答案 1 :(得分:1)
客户端环境中的任何内容都是可读的,除非它是加密的 - 什么不适用于JavaScript。您可以使用服务器端环境来处理该问题,而无需使用 node.js 保留JavaScript,请查看this post。
将ajax请求(jQuery或pure)用于node.js service或您选择的任何其他服务器端语言,并将这些操作置于用户眼前。这是更安全,更正确,也许只是这样做的方式。
答案 2 :(得分:0)
最安全的方法可能是拥有一个可以通过Ajax调用的服务器端函数来返回链接。
您使用的服务器端代码类型取决于您的偏好。
例如ASP.NET Web Service
,PHP
,ASPX Web Methods
。
以下是使用jQuery的示例Ajax请求代码:
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 :(得分: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];
答案 4 :(得分:0)
这还不能完成。 HTML5将来可能会有DRM实现,但这也取决于选择加入此功能的浏览器(例如,Mozilla会反对它)。
答案 5 :(得分:-3)
禁用右键单击和ctrl按钮,这就是你能做的一切! :d