JS中ES5和ES6中set和get方法

ES5
情况一:对象已经创建,需要给上面添加setget方法
/*
* 如果使用defineProperty定义setget,默认configurable: false,enumerable: false
* */
var obj={_a:0};
Object.defineProperty(obj,”a”,{
configurable:false,
enumerable:false,
set:function (value) {
this._a=value;
},
get:function () {
return this._a;
}
});
情况二:当创建对象时,使用这种写法
/*
* 当使用对象设置setget时,configurable: true,enumerable: true
* */
var obj1={
_a:0,
set a(value){
this._a=value;
},
get a(){
return this._a;
}
};
console.log(Object.getOwnPropertyDescriptor(obj1,”a”));
ES6
class Box{
constructor(){
this._data=null;
}
set data(value){
this._data=value;
}
get data(){
return this._data;
}
}
getset方法的使用:
get、set方法的使用在JavaScript中并不是像java、C、C++中的XXX.get(),XXX.set(),一样使用,而是通过以下:
/*
* 这就相当于执行了set a(value)这个访问器
* 等号后面值就是访问器中参数value
* */
obj1.a=4;

/*
* 获取obj1.a的值,执行get a()这个访问器
* 如果在等号右边,或者打印的函数中等。
* 因为get a()访问器里有return,就会返回一个值
* */
var sum=obj1.a+5;
console.log(obj1.a);

勒索软件产业化的感想

1.最近,我看到一条新闻。

美国最大旅行社之一的 CWT 公司,内网多达30000台电脑感染了 Ragnar Locker 病毒, 许多文件被加密,无法打开。攻击者要求支付赎金1000万美元。

双方在一个公开的聊天室里面讨价还价,被人看到了,这件事情才暴露。CWT 最终答应支付450万美元(下图)。

2、

我的印象中,美国最近发生了很多这类事件,勒索软件已经成了一个产业。

根据报道,单单是一个叫做 Netwalker 的勒索软件就在过去五个月里面,收入超过2500万美元。它甚至在俄罗斯的论坛里面招募”业务人员”(下图),帮它散布病毒,好处是可以提成60%~70%的赎金。

为了证明自己的”实力”,他们还贴出了比特币账单,都是受害者支付的赎金。最小一笔进账,也有近70万美元。

这个组织还不是最厉害的,另一个勒索软件 GandCrab 声称,赎金收入超过20亿美元。

3、

为什么这种事件现在变多了?

我认为原因就是比特币。这么大金额的支付,通过传统的银行转账,一定会发现谁是收款人。但是,通过比特币,根本查不出来。

由于可以安全地收到赎金,在丰厚利润的刺激下,这类勒索事件以后可能会层出不穷。大公司和大组织将成为攻击的首选目标,因为它们付得起高额赎金。

4、

如果勒索软件成为一个产业,这就意味着,计算机安全会成为一个热门领域,企业将大幅增加软件安全方面的支出,网络安全工程师会变得很抢手,身价越来越高。

所以,安全技术现在值得投资,年轻程序员可以选择主攻这个方向。

老实说,作为一个黑客是一个不错的职业,既可以通过”黑帽子”赚钱(攻击其他系统),也能摇身一变,通过”白帽子”赚钱(提供安全咨询服务)。

5、

最后谈谈,普通企业或者个人使用者,应该怎么防范勒索软件?

(1)我觉得,最简单的措施就是,尽量少用 Windows 系统。Windows 下面真是防不胜防,改用苹果或者 Linux 系统,安全性会提高很多。

(2)数据多备份,关键数据尽量保存在云端。

(3)如果有条件的话,建议使用虚拟化技术。在沙箱环境打开应用软件,这样的话,即使遇到病毒,也不会感染底层系统,因此虚拟化技术也非常看好。