ASP.NET MVC | The Will Will Web

The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

ASP.NET 發現重大資安弱點影響範圍涵蓋 ASP.NET 1.0 ~ 4.0

幾天前有兩位資安研究員 (Thai Duong and Juliano Rizzo) 發現了一個 ASP.NET 的資安弱點,主要的點出在 .NET 實做 AES 加解密演算法的問題,駭客透過這個弱點即可在短時間內猜出你網站的加密金鑰進而入侵你的網站系統,在 ASP.NET 裡使用到加解密的地方非常多,像是 Forms Authentication 與 ViewState 都是非常常見的功能,加密金鑰 (MachineKey) 被猜到之後就可以讓駭客用任意身份使用你的網站或任意竄改 ViewState 中的狀態資訊,嚴重性非同小可,各位一定要即時因應。

... 繼續閱讀 ...

ASP.NET MVC 單元測試系列 (5):瞭解 Stub 假物件

前天的文章我介紹了 Mock 假物件 (Fake Object),今天要講另一種假物件稱為 Stub 假物件,這種假物件目的與用途都跟 Mock 非常相近,總之就是為了讓單元測試程式可以順利執行而生的一種開發方式,這兩種假物件類型在單元測試的領域都非常重要,而且各有各的存在必要性,在日後單元測試的日子裡都會經常用到這兩個東西。

... 繼續閱讀 ...

ASP.NET MVC 單元測試系列 (4):單元測試的目的與價值

透過前三篇的系列文章,不知道初學者能不能上手開發單元測試,畢竟這對許多人來說是個新玩意,不只是單元測試是新的,可能許多人連 ASP.NET MVC 都沒玩過,那就更難跟上了,不過只要有心,人人都可以當大師 (靈感來自於周星馳經典台詞之食神)。若你開發的是 ASP.NET MVC Web 應用程式,到底單元測試要測試些什麼?可以測試些什麼?測試的範圍又是多少呢?

... 繼續閱讀 ...

ASP.NET MVC 單元測試系列 (3):瞭解 Mock 假物件 ( moq )

我們在上一篇已經得知「可測試性」的思考方向,在本篇文章我們將利用 Mocking 技術強化之前修改過的測試程式,讓我們的單元測試程式可以完全脫離「外部資源」的魔掌 (在此範例是指資料庫連線),我們將使用 moq 工具函式庫協助我們的測試程式更容易、更快速的撰寫,至於 moq 的安裝可參考 moq 官網或 ASP.NET MVC 2 開發實戰 一書【12-3-7 利用Mock假物件完成單元測試】章節的說明 ( P.398 )。

... 繼續閱讀 ...

ASP.NET MVC 單元測試系列 (2):可測試性 (Testability)

為什麼人家說 ASP.NET MVC 的可測試性很高?這是真的嗎?為什麼實際在寫 ASP.NET MVC 單元測試的時候卻綁手綁腳的,很多時候連怎麼開始寫測試程式都摸不著頭緒。由於 Web 環境下能開發的功能很多,程式碼的多樣性也很大,有時後複雜度也很高,寫出能動的程式已經不容易了,所以以往總是用隨心所欲的方式開發,不過現在不能這樣寫了,為了讓開發過程中都能不斷的撰寫單元測試,有時後你必須妥協,寫程式的時候要時時刻刻想到你寫的這行程式碼需要被測試,所以你要套用一些 設計樣式 (Design Pattern) 來撰寫程式,好讓你未來撰寫測試的日子更加好過。

... 繼續閱讀 ...

ASP.NET MVC 單元測試系列 (1):新手上路 / 開始撰寫!

因為軟體測試越來越重要,而單元測試正是跨出軟體測試重要的第一步,不過軟體測試的學習之路卻異常艱辛,最主要的難處在於沒有人可以討論,不知道什麼是對?什麼是錯?判斷的依據在哪?哪個決定好?哪個決定壞?什麼才是最恰當的?千千萬萬個疑問不知道從何下手?所以我預計寫一系列與 ASP.NET MVC 單元測試的文章,一方面透過寫作的過程幫助自己釐清各種測試的觀念,另一方面也可以跟四面八方開發人員互動,期望能獲得最正確的觀念。

... 繼續閱讀 ...

ASP.NET MVC 開發心得分享 (20):與原始碼共舞 ( .NET 4.0 )

由於我們有個專案已經升級至 .NET 4.0,而我希望在開發時期要將 ASP.NET MVC 2.0 RTM 原始碼連同原專案一起開發,其實在不更動 System.Web.Mvc 專案的目標 Framework 為 3.5 的情況下是可以正常運作的,不過若像我們遇到一些比較特殊的情況可能會希望連 System.Web.Mvc 專案的目標 Framework 一併升級到 .NET 4.0,雖然升級後可以正常編譯,但是卻會在執行時期發生錯誤,以至於根本無法進行除錯,這時就必須動點小手腳才能讓 ASP.NET MVC 網站成功執行。

... 繼續閱讀 ...

ASP.NET MVC 開發心得分享 (19):Action 要小心使用 using

今天在 Code Review 的時候抓到一支程式臭蟲,這個功能是某 ASP.NET MVC 專案中的一個匯出下載檔案功能,該功能的 Action 已經寫完很久了,之前測試都正常,但是最近卻突然爆發錯誤,經程式追查之下才發現原來是程式在執行之前就已經把資源給釋放掉了,導致 ASP.NET MVC 無法正確回應資料到用戶端,以致於發生【System.InvalidOperationException: 作業無效。已經關閉連接。】的錯誤。

... 繼續閱讀 ...

人生第一本書:ASP.NET MVC 2 開發實戰將於 8/16 上市

我的人生第一本書【ASP.NET MVC 2 開發實戰】終於要出版了,從去年四月到現在寫了一年多的時間,真的很不好意思讓各位久等了,剛剛得知悅知文化來的消息,目前已經確定本書在 8/16 就可以在全省書店買到,而且本週六或週日開始在天瓏書局還會開放 75 折的預購 喔,此次為獨家預購:Visual Studio 2010 新書預購第二波(2010-08-06),預購截止日到 8/16 (一),有興趣的人可以好好把握。 ^_^

... 繼續閱讀 ...

Visual Studio 2010 開啟 ASP.NET MVC 1.0 專案的注意事項

我們之前有個專案是用 ASP.NET MVC 1.0 開發,原本大家都是用 Visual Studio 2008 在開發,但上個月有位同事將專案升級至 Visual Studio 2010,升級的過程並沒有發生任何問題,不過他有把 ASP.NET MVC 組件還原成 1.0 的版本,過了一個月後終於在測試機身上爆發問題,我今天也是查了十幾分鐘才找到問題發生的主因。

... 繼續閱讀 ...

ASP.NET 4.0 安裝在 IIS6 最常遇到的四個問題

昨天同事將一個 ASP.NET 4.0 的網站安裝到客戶的 IIS6 主機上 (測試環境),結果過程非常不順利,他們曾經一度覺得客戶的主機不知道經過幾隻手蹂躪過了(因為有好多人在共用 Administrator 帳號)進而產生排斥安裝在客戶主機以及 “為什麼我們要用 ASP.NET 4” 的感覺,不過在一群人的努力之下最後還是克服了困難,我特別因此寫下筆記,相信這些問題有其他人也可能會遇到。

... 繼續閱讀 ...

ASP.NET MVC 開發心得分享 (18):非同步控制器開發

ASP.NET MVC 2.0 新增 非同步控制器 (AsyncController) 的開發方式,若是你的網站流量大但是大部分的運算資源是落在與 CPU 無關的運算上時,例如 SQL Server、讀取外部網路資源、呼叫外部 Web Service 等等,就很適合利用此功能來開發 ASP.NET MVC 應用程式,由於這是個比較進階且冷門的技術,所以我大致寫一些 IIS 處理非同步要求的原理與 ASP.NET MVC 非同步控制器的撰寫方式以及開發應注意的事項。

... 繼續閱讀 ...