上完整天課,晚上再整理筆記,比上班還操!

不過,上班後還有機會當學生是幸福的,所以坐前兩排是一定要的,全程不闔眼更是必要的堅持... (謎之聲: 你還真敢說? 有閉眼就天打雷霹哦!) 呃... 當然啦,這是相當崇高的理想,而我畢竟也還是血肉之軀,所以... XD

【Unit Test】

講師李智樺很像蔣公,我Google不到他的Blog,有人知請再通報

  1. 迷思: Java Developer很少不做Unit Test的,.NET Developer很少在做Unit Test的
  2. 不做Unit Test的理由: 老板沒要求何必雞婆、趕專案都來不及了測個屁、需求一直改哪來的美國時間測、我們的測試員哩?
  3. 有了Unit Test,接手前人/外包商的Code才有品質保障,Refactoring時也才能確保程式沒被改壞,好處很多
  4. Martin Fowler: 不相信文件,只相信Code;Code成千上萬行,要如何相信? 用Test驗證!
  5. DEMO: Visual Studio可透過按右鍵自動產生Unit Test相關專案及檔案。不一定要一次生完全部的Test,太複雜的可等程式不斷修改擴充,聞到Bad Smell(覺得再拖下去會出事)時再用VS的功能產生。
  6. Test Driven Development: 先寫Test Case再寫Code,強迫你再想一次需求(Second Thought)是額外的收獲。
  7. Unit Test時記得要檢視Coverage,確認有測到各種情境的分支。
  8. 重要的前車之鑑: 程式想不出來時,不要抓頭...
  9. 老師講的劍潭的笑話聽不懂...

【SQL 2008】

  1. 新資料型別: Date、Time(可到100ns)、DateTimeOffset(可含時區)、DateTime2(範圍大,可到100ns)。Time、DateTime2宣告可決定秒的精準位數,決定資料佔用的空間。
  2. INSERT INTO ... VALUES
         ( v11, v12, v13, v14, ... , v1n)
         ( v21, v22, v23, v24, ... , v2n)
    可一次INSERT多ROW
  3. User Defined Type可以破8KB
  4. Table Type,宣告Table Variable時,可以不用每次重新宣告欄位,直接指定變數的型別是Table Type即可。另外,Table Variable可以被當成Stored Procedure或UDF的參數傳遞。
  5. Grouping Set: 可簡化原本要GROUP BY不同欄位再UNION ALL的做法
  6. Merge: 可以設定沒有就新增、有就更新,讓合併資料表的工作更容易。說明
  7. 支援 += -= *= /=表示法
  8. SQLCLR: UDT, User Defined Aggregate也可大於8KB
  9. SQL 2008多了70種新的Collation,企圖與OS的選項一致
  10. HierarchyID, 空間資料, Filtered Index(只對符合某種條件的Rows做Index)

【SQL 2008 Security】

講師陳俊宇 Blog: http://sharedderrick.blogspot.com/

  1. EKM: Extensible Key Management,可以引用廠商提供的Provider做加密,藉由硬體運算減少Server負荷,並可享有金鑰資料分離的額外優勢。
  2. TDE: Transparent Data Encryption,設定憑證為全資料庫加密,即便mdf或備份檔被盜走,也無法Attach或Restore。設定TDE後,程式完全不用改。
  3. TDE以Page為單位加密,並有Checksum,唯FileStream DataType不加密。
  4. TDE可與資料壓縮併用(因先壓才加密),但與備份壓縮併用時無太大效果(密文之可壓縮性很差)
  5. TDE會導致tempdb也加密,效能略差。
  6. Enterprise/Developer Edition支援EKM/TDE
  7. 新的稽核機制,可針對全Server或Database做稽核
  8. 稽核機制應用範例: 監控帳號建立、刪除、改密碼,特定帳號對特定Table的SELECT

【WebAP的安全漏洞】

講師是大名鼎鼎的Birdman(邱銘彰),想看他的新文章可到阿瑪外傳

雖然不意外主軸還是SQL Injection與XSS兩位老掉牙的頭號戰犯,但其中有不少精闢的分析歸納,十分精彩。

  1. 妙喻: 漏洞是系統功能的一部分,只是它沒有寫在規格書上,有些"功能"很強可以"做很多事"。
  2. WASC統計,平均每個Web有13個漏洞,其中9個很嚴重。
  3. 資安威脅排行維持XSS、SQL Inection領先,而去年竄出的Malicious File Extension,指的是掛馬這類行為。
  4. XSS一直是漏洞排行榜的冠軍。
  5. Samy利用社交網站MySpace的漏洞以XSS方式,被加成百萬人的好友。參考
  6. XSSed 網站仍有一大票仍存在XSS漏洞台灣網站的名單,很多是公家機關,而且上榜很久了。
  7. 常識: SQL Injection、XSS是什麼?
  8. 名言: 逃避不一定躲得過,面對不一定最難受
  9. SQL Injnection、XSS、Stack Overflow、藍盒子打免費電話的本質都很像,就是Data Channel被轉換成Command Channel
  10. 處理User輸入內含有毒物質的黑名單策略:
    A. Block - 有毒就整批拒絕
    B. Sanitize - 將有毒部分剔除(最後儲存結果與User輸入有出入)
    C. Transform - a) Escape只換掉有毒部分 b) Encode 全部編碼
  11. XSS的Sanitrize不好做。例如: %3Cscript%3E, <scri<script>pt>,防不勝防
  12. AntiXss.HtmlEncode比HttpUtility.HtmlEncode來得安全,過濾得更徹底。
  13. Error Safty的程式設計:
    A. No-Fail Guarantee: 做不到
    B. Strong Guarantee: Block and Rollback
    C. Basic Guarantee: Sanitize, Transform

【ASP.NET 3.5 SP1】

講師董大偉網站: http://studyhost.blogspot.com/

又是很充實,講得又快又多的一堂精彩課程,只能簡要提示如下,有興趣的自行深入研究。

  1. ASP.NET AJAX Script Combining: 減少一頁要載入十來個js的需求,一次全部取回以提高效率。參考
  2. Url Routing
  3. ASP.NET Dynamic Data,依據Schema自行產生清單、編輯Web UI,可透過Meta Attribute客製,例如: TextBox -> DateTimePicker,指定輸入範圍的Range Validation等。
  4. ADO.NET Data Service,將ADO.NET Data Entity以WCF方式提供出去,簡化遠端存取資料庫的Coding。
  5. ASP.NET MVC,對於UI、Data Logic的分割很徹底,抽換UI是一塊蛋糕(例如: ASPX->Silverlight),但這個架構較複雜,是否會值回票價,端賴應用的情境而定。

Comments

# by Will 保哥

錯字: Colation --> Collation

# by Prince

9.老師講的劍潭的笑話聽不懂... 他的重點是應該是最後一句"鄭成功" 取劍潭這個名字,應該是為了這個專案能成功吧! 我只是不知道哪裡有好笑...XDDD

# by Jeffrey

to 保哥,校正了,謝謝! to Prince,這讓我聯想到,配合老師當時講鄭成功的神情,會不會笑點在---"朕"成功? 有點冷就是了,哈!

# by Billy

今天剛收到個好消息,MS 將會支援 JQuery jQuery to ship with ASP.NET MVC and Visual Studio http://www.hanselman.com/blog/jQueryToShipWithASPNETMVCAndVisualStudio.aspx

# by Andy Lu

講師李智樺的 Blog http://ruddylee.spaces.live.com/

# by Andy Lu

蔣公 - 李老師的 Blog http://ruddylee.spaces.live.com/

# by km

李智樺講課太跳躍方式沒有聚焦, 老笑話, 浪費大家時間

# by 路人想發問

請問microsoft anti-xss library是.net寫的,有辦法轉換成JS的程式碼嗎? QQ 謝謝

Post a comment