javascript - 如何防止 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")}'
哪个泄露了源代码。
解决方案
一种解决方法是像这样覆盖所有函数toString
:
> Function.prototype.toString = () => {return "bla"}
[Function]
> '' + new User().balance
'bla'
推荐阅读
- iframe - 在 iframe 中制作内容以适应 Mobile 中的视口
- java - 如何在 Eclipse Milo OpcUa 服务器上正确编写 ExtensionObject 数组?
- django - Django显示错误,如“导入错误没有名为redis的模块”
- reactjs - 反应路由器:类型中缺少“历史”
- php - 替换 HTML 中的内容
使用 php 具有特定语言字符的标签
- c++ - 访问具有单态的变体
- php - 使用 add_row 以编程方式将条目添加到 wordpress 高级自定义字段中的灵活内容字段
- java - 休眠单向与 MySQL DB 的一对一映射?
- ios - iOS上的Ionic 1应用程序,当打开多个应用程序时,它正在使用/吸收第一个应用程序页面
- javascript - 如何将 javascript postData 转换为 Python 列表?