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

Are there any security concerns or reasons not to publish code used in a web application

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

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

可以public毫无问题地制作遵循所有适当最佳实践的正确制作的 Web 应用程序。一个完美的例子是 WordPress。 正如您所提到的,任何私人信息(密码、数据库信息、散列盐、配置等)都不应该包含在回购中——即使它是私人的。但是,在许多情况下 public 存储库提供示例配置文件。

如果您使用的是 AWS,请考虑 Parameter Store and Secrets Manager for handling your configuration and secrets and as long as you follow the Well Architected Framework 您的应用程序从云的角度来看是安全的。 通过Cognito.

可以实现用户身份管理

如果您的应用程序是 API,我强烈建议您查看 API Gateway (with which you will find rate-limiting easy). If not, you could build rate limiting on top of an Application Load Balancer,或者直接将其构建到您的软件中。