在源代码中公开Schema Structure是一个坏主意吗?

时间:2014-10-20 15:55:41

标签: security schema jsonschema

从安全的角度来看,向最终用户(浏览器)公开数据的结构是不是一个坏主意?

我正在研究JSON-SCHEMA,(过于担心)试图考虑这个问题,如果它可能导致漏洞和/或让竞争更容易对最终产品进行逆向工程?

我能想到的2个主题我想知道答案(除非还有更多):

  1. 漏洞
  2. 逆向工程师

2 个答案:

答案 0 :(得分:2)

让我们假设任何能够看到JSON Schema的人也可以看到该模式之后的数据(使用捆绑到任何浏览器中的标准调试工具)。

除非您的数据结构是故意混淆的(这是一种无效的安全措施),否则只要通过查看在正常操作期间来回发送的示例,就可以相当直接地找出数据的形状。客户。公共文档将使他们的生活最多十分钟。

另外(在这里考虑JSON API,但我认为它更普遍),系统以任何方式的安全性取决于数据的保密性< em> format 是一个超大的亮红色警告标志。如果你的数据中有一个超级秘密标志(例如{"passwordOverride": true}:p)或攻击者可能使用的其他属性(对于除自己以外的任何人),那么你的系统已经坏了。 / p>

明确记录的API中应该没有任何损害 - 实际上,您和其他任何协作者可能更容易对安全性进行审计。如果我的API中有一个安全漏洞,我老实说它很明显,所以我/其他人可以注意到并修复它。

答案 1 :(得分:1)

在数据层工作的人是唯一知道公开数据结构是否与数据库模式外观相同的人。对于最终用户,他们只能假设,结构不一样,结构相同,结构相似但各不相同。并且所有这些假设都具有相同的概率,因此,您可以模糊暴露的数据或使其与数据库模式保持一致,您将具有相同的概率和漏洞。最好不要保持一致。