在面試公司時,我被要求提交幾個代碼樣本,強調我的「最佳」工作。我回復了幾個有關特定代碼示例的問題,其中一個提到了一個錯誤。對面試代碼樣本執行損害控制?
代碼示例是一個WCF Web服務,它使用AES來加密一個不透明的blob。該服務使用blob來標識特定服務請求的所有資源。錯誤在於.NET RijndaelManaged類與CBC模式一起使用,沒有正確設置IV。 RijndaelManaged類將在類實例化過程中自動生成適當的IV,在代碼示例中該類實例化在第一次使用加密期間發生,並且在ASP .NET應用程序的生命週期中持續存在。由於ASP.NET應用程序可能由於各種原因而重新啓動,因爲App啓動期間生成的新IV值(錯誤),這些不透明Blob可能會從一次服務調用到下一次服務調用「失效」。
這個問題本身就是「IV在哪裏解密?」
我的迴應已經承認這是一個錯誤;但是因爲他們要求我的「最佳」工作,我是否因爲提交了一個帶有錯誤的樣本而擔任這個職務的SOL??我還能說更多嗎?
我很猶豫要概述這種情況,因爲我不想讓自己找藉口,但是當我們的服務處於alpha版本前,加密代碼就被關閉了,並且項目被殺死了在我們進入生產之前。