您是否可以在Javascript中分享有关创建私人和受保护成员的观点。
我的意思是真正保护,不仅仅是道格拉斯·克罗克福德所说的惯例。
不要使用_(下划线)作为名称的第一个字符。它有时用于表示隐私,但实际上并不提供隐私。如果隐私很重要,请使用提供私人会员的表格。避免表现出缺乏能力的惯例。
"use strict";
function MyMain(){
this.checkauth=false;
}
MyMain.prototype.init=function(){
return Object.create(this);
}
MyMain.prototype.authenticate=function(key){
//resp is server response hold true for the given key. here validate method will interact with server and get concerned response
var resp=validate(key);
if(resp){
this.checkauth=true;
return true;
}
return false;
}
MyMain.prototype.test=function(){
if(this.checkauth==true){
console.log("this is working")
}else{
console.log("Not authorized")
}
}
嗯,我在解释中看到了我编辑的内容。
我无意在客户端进行授权。我在服务器上制作并让私人成员说真的说服务器验证了用户,我的问题是如何使这个安全。
有权访问我的Javascript文件的用户可以阅读所有内容并进行身份验证。
var main=new MyMain();
main.checkauth=true;
main.test();
寻求有关通过javascript创建安全身份验证的帮助。
答案 0 :(得分:5)
虽然有各种方法可以屏蔽变量并使访问变得棘手,但这些技术的主要好处是它们阻止您偶然访问 。
浏览器的所有者可以访问您发送到浏览器的所有代码和所有数据。
您无法阻止他们访问它。
如果您想进行安全身份验证,那么必须在服务器上执行此操作。
我无意在客户端进行授权。
如果您没有使用authz客户端,那么设置main.checkauth=true;
的用户对您来说不会有问题。
如果用户未经授权,您需要不发送仅供授权用户使用的数据和JavaScript。目前,您似乎在服务器上进行授权,但无论如何都要将授权用户的所有数据/ JS发送给客户端(只需要一些客户端代码说明"请不要看在这")。