2017-03-07 117 views
3

引用的庫我下面這個教程對我來說,熟悉ASP.NET核及其他相關技術。 https://www.codeproject.com/articles/997216/restful-day-sharp-resolve-dependency-of-dependenci我可以訪問沒有直接

他提到,引用DataModelWebApi項目是不是出於安全原因,一個很好的做法。所以,我沒有跟他和我的驚喜,我仍然可以只是通過Services間接引用它的訪問類的DataModelWebApi項目。

下面的屏幕截圖將顯示項目的關係是(從教程)更加清晰。

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

而且在我的下面WebApi的項目我的實際引用。

WebApi's references

我還是很新的.NET和想知道這是否是預期的行爲或者這可能會導致任何安全隱患。

回答

2

這是預期的行爲?

是的。這就是所謂的transitive dependency。您的項目可以引用其依賴項引用的包,就好像該項目本身依賴於這些包。這是預期的行爲;請參閱:Transitive references in .Net Core 1.1

這會導致任何安全風險嗎?

不可能。您不應該依賴軟件包依賴關係規則來保證您的代碼安全。相反,請確保您的代碼在編寫時考慮到安全性 - 始終清理用戶輸入,使用參數化查詢,在服務器端強制執行授權等等。

我應該依靠傳遞依賴?

您的應用程序/庫不應該依賴傳遞依賴,因爲他們可以在你消失了,沒有任何警告(如果你的依賴關係中的一個改變依賴)。相反,請明確指出您的代碼需要依賴的任何包到適當的依賴項中。

+1

這絕對回答了我的問題,儘管我仍然半心半意,我應該如何看待這個問題,因爲它看起來很不錯,我猜很亂?無論如何,謝謝你的回答!現在我會更多地瞭解我知道用於此行爲的「傳遞」術語。 :) – Lawrence

+0

@勞倫斯我同意,它可能不是_insecure_本身,但它很混亂。我會用更多的顏色更新我的答案。很高興它有幫助。 :) –

+1

_您的應用程序/庫不應該依賴傳遞性依賴關係_問題是Visual Studio會高興地建議使用傳遞性依賴性類型,而沒有任何警告說它們是在間接依賴項中定義的,您無法知道這一點。你應該意識到你正在做的是通過注意到在文件頂部出現「不正確」的「使用」(即除非類型存在於已經使用過的命名空間的「擴展名」中,那麼你運氣不好)。 – Albireo

相關問題