Java 如何保护您的API免受了解您的API的开发人员的攻击?

Java 如何保护您的API免受了解您的API的开发人员的攻击?,java,spring-boot,api,microservices,webapi,Java,Spring Boot,Api,Microservices,Webapi,我是一家公司的fullstack开发实习生。我正在从事在线书店项目。我的经理问了一个问题 他问“如果有人,即其他开发人员知道您的代码或API,他们可以在您的项目中更改代码或API,并将自己添加为管理员,或者可以从数据库中删除一些用户,还可以通过更改您的API来执行CRUD操作。那么您如何解决此问题?” 我的建议是:我们可以把代码放在一些服务器上,而不是把代码放在本地机器上 请给出您的意见和正确答案。我建议您使用类似于github或gitlab的代码库。将项目上载为存储库后,请更改存储库的设置,以

我是一家公司的fullstack开发实习生。我正在从事在线书店项目。我的经理问了一个问题

他问“如果有人,即其他开发人员知道您的代码或API,他们可以在您的项目中更改代码或API,并将自己添加为管理员,或者可以从数据库中删除一些用户,还可以通过更改您的API来执行CRUD操作。那么您如何解决此问题?

我的建议是:我们可以把代码放在一些服务器上,而不是把代码放在本地机器上


请给出您的意见和正确答案。

我建议您使用类似于
github
gitlab
的代码库。将项目上载为存储库后,请更改存储库的设置,以便不允许其他人更新代码(不允许其他贡献者)。生产中的项目代码应基于此存储库进行部署。
不仅仅是更新,您还可以将存储库设置为私有,这样就没有人可以看到您的代码。

我相信您的问题主要与运行时行为或对rest服务的控制有关。这就是保安的作用。网关通过过滤资源路径发挥作用。他知道的API端点可以在网关上进行过滤或重新映射。通过身份验证和授权保护应用程序增加了另一层保护。例如只有经过身份验证的人员A才能访问应用程序。一旦通过身份验证,人员A只能在其属于SystemAdmin等类别时添加他/她自己


如果它与代码管理相关,那么就需要使用存储库管理。为少数个人设置将更改推送到主分支的权限。从逻辑上讲,所有开发人员都应该在Forked分支上工作,并将创建一个Pull请求以将更改推送到主分支。这将给Master branch的版主提供一个机会来审查代码并将其过滤掉。

我认为这篇文章是一个很好的方式,可以让人简要了解源代码安全性。我们可以在获得响应时使用API中的标题。在标题中,我们使用一个键,然后条件是PHP代码,其中键是无法获得响应的更改。如果有人知道您的键,则获得响应。这个技巧是为了保护你们的响应数据。那个么API网关呢?那个么任何人都可以无条件地访问版本控制系统并进行更改吗?如果您无法控制谁可以更改代码,那么开发保护就没有意义。我如何更改存储库的设置,使其他人不允许更新代码?……您的意思是拥有私人回购???@Arivazhagan不,它可能是公共的。但是你可以定义谁对项目做出了贡献。如果您不允许任何其他人作为项目的参与者,那么就没有人能够在主存储库中提交任何更改。他们仍然可以使用公共存储库,并在本地机器上进行更改。但是,由于不允许将它们的更改合并到主存储库,因此它将不会进入生产。如果你不想让任何人看到你的代码,那么你需要将其私有化。通常在一个组织中,只有高级人员才有权更新代码。因此,年轻人会从本地机器更新代码,并提出一个
合并请求(gitlab术语)。此合并请求需要有权进行更新的人批准。只有获得批准,代码才会到达主存储库。