当我们构建一个涉及用户、用户生成内容、管理区域、api 和静态内容的 web 应用程序时,我正在与开发人员进行讨论。
任何人都可以访问大部分模板信息,例如用户帐户模板,用户可以在其中查看和更新他们的信息,模板 url 只需很少挖掘即可找到,也无需身份验证即可请求。大多数管理模板也是如此,如果没有正确的身份验证,它们都无法正常工作,但仍然可以阅读。
这使任何人(尤其是经过身份验证的用户)都可以深入了解 Web 应用程序和 API 的功能。阻止对这些信息的访问只会提供一层模糊性,因为 API 方法和内部函数的运行方式仍然相同——人们只需要做出更多假设。
目前我们的推理是,
是的,我们应该阻止访问:仅根据需要提供资源,否则会鼓励恶意行为。
不,我们不应该阻止访问:这是很多额外的工作,它增加了复杂性,如果我们有安全问题,这只会提供模糊性。
所以我的问题是:
我们(以及其他人)是否应该阻止访问此类非敏感信息?
经过进一步讨论,有人提出了这个噩梦般的政策:
图形资源,例如退出图标,应该只对经过身份验证的用户和预期显示图标的来源可用。