我正在学习本教程,以便熟悉ASP.NET核心和其他相关技术。 https://www.codeproject.com/articles/997216/restful-day-sharp-resolve-dependency-of-dependenci
他提到,出于安全原因,引用DataModel
项目中的WebApi
并不是一个好习惯。所以我确实关注了他,我很惊讶,我仍然可以通过DataModel
间接引用我WebApi
项目中Services
上的课程。
下面的截图将更清楚地显示项目的关系(来自教程)。
https://www.codeproject.com/KB/aspnet/990492/image028.jpg
我在下面WebApi
项目中的实际参考资料。
我还是.NET的新手,想知道这是否是预期的行为,否则会导致任何安全风险。
答案 0 :(得分:2)
这是预期的行为吗?
是。这就是所谓的transitive dependency。您的项目可以引用其依赖项引用的包,就好像项目依赖于这些包本身。这是预期的行为;见:Transitive references in .Net Core 1.1
这会导致任何安全风险吗?
不太可能。您不应该依赖包依赖规则之类的东西来保证您的代码安全。相反,请确保您的代码在编写时考虑了安全性 - 始终清理用户输入,使用参数化查询,在服务器端强制执行授权等等。
我应该依赖传递依赖吗?
您的应用程序/库不应该依赖于传递依赖项,因为它们可能会在没有任何警告的情况下消失(如果您的某个依赖项更改其依赖项)。相反,要明确并将您的代码所依赖的任何包依赖于适当的依赖。