gpt4 book ai didi

c# - 我可以访问未直接引用的库

转载 作者:行者123 更新时间:2023-11-30 16:45:11 24 4
gpt4 key购买 nike

我学习本教程是为了熟悉 ASP.NET Core 和其他相关技术。 https://www.codeproject.com/articles/997216/restful-day-sharp-resolve-dependency-of-dependenci

他提到,出于安全原因,在 WebApi 项目中引用 DataModel 并不是一个好的做法。所以我确实关注了他,令我惊讶的是,我仍然可以通过 Services 间接引用它来访问我的 WebApi 项目中 DataModel 上的类。

下面的屏幕截图将更清楚地显示项目的关系(来自教程)。

https://www.codeproject.com/KB/aspnet/990492/image028.jpg

下面是我对我的 WebApi 项目的实际引用。

WebApi's references

我对 .NET 还是很陌生,想知道这是否是预期的行为,或者这会导致任何安全风险。

最佳答案

Is this expected behavior?

是的。这就是所谓的 transitive dependency .您的项目可以引用其依赖项所引用的包,就好像该项目本身依赖于这些包一样。这是预期的行为;参见:Transitive references in .Net Core 1.1

Can this lead to any security risks?

不太可能。您不应该依赖包依赖性规则之类的东西来保证您的代码安全。相反,请确保在编写代码时考虑到安全性 - 始终清理用户输入、使用参数化查询、在服务器端强制执行授权等。

Should I rely on transitive dependencies?

您的应用程序/库不应依赖传递性依赖项,因为它们可能会在没有任何警告的情况下从您身上消失(如果您的依赖项之一更改它的依赖项)。相反,要明确并使您的代码依赖的任何包成为适当的依赖项。

关于c# - 我可以访问未直接引用的库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42657598/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com