是否存在任何安全问题或不发布web应用程序中使用的代码的原因



我即将创建我的第一个web应用程序。我想把所有的东西都开源,但我不确定这是否被普遍认为是个坏主意。我的计划是不发布任何凭据(例如,我将加载一个未发布的配置文件或环境变量(,但我不确定仅仅允许人们剖析运行的代码本身是否是一个安全问题。应用程序中是否有不应该共享的部分?这取决于正在使用的库吗?我不担心我正在使用的数据库被公开。我最担心的是对机器的攻击(我计划在云主机上进行攻击(。

不确定这是否重要,但我正在考虑创建一个.Net web应用程序,并使用sqlite数据库在AWS上托管。还没有弄清楚如何管理用户标识、速率限制。。。。

遵循所有适当最佳实践的适当制作的web应用程序可以毫无问题地公开。WordPress就是一个很好的例子。正如您所提到的,任何私有信息(密码、数据库信息、哈希盐、配置等(都不应包含在repo中,即使它是私有的。然而,在许多情况下,公共转发提供了示例配置文件。

如果您正在使用AWS,请考虑使用Parameter Store和Secrets Manager来处理您的配置和机密,只要您遵循架构良好的框架,您的应用程序将从云的角度来看是安全的。用户身份管理可以通过Cognito实现。

如果您的应用程序是API,我强烈建议您查看API网关(使用它可以轻松降低速率(。如果没有,您可以在应用程序负载均衡器之上构建速率限制,或者只将其构建到您的软件中。