首页 > 解决方案 > 如何防止 NodeJS 服务器潜在地暴露函数代码?

问题描述

假设您正在构建一个银行应用程序后端。您想使用返回余额但忘记添加的字符串来响应用户()

class User {
  constructor() {console.log("ctor")}
  balance() { console.log("secret balance code")}
}

然后在引用用户时,而不是这样写:

const userA = new User();
return `Your balance is $${userA.balance()}`;

我不小心写了这个:

const userA = new User();
return `Your balance is $${userA.balance}`;

可悲的是输出:

'Your balance is balance() { console.log("secret balance code")}'

哪个泄露了源代码。

标签: javascript

解决方案


一种解决方法是像这样覆盖所有函数toString

> Function.prototype.toString = () => {return "bla"}
[Function]
> '' + new User().balance
'bla'

推荐阅读