ASP.NET MVC架構下如何防範表單偽造(CSRF)

首先,何謂CSRF?CSRF是Cross-Site Request Forgery的簡稱,簡單來說就是惡意駭客為竊取資訊用script創造成的假表單。詳情請參考OWASP官網解說:Cross-Site_Request_Forgery

那麼在ASP.NET MVC底下,其實要防範這個問題相當簡單,只要在Razor Ajax.BeginForm或是Html.BeginForm,甚至是一般傳統Html

內加上@Html.AntiForgeryToken,就會在表單Submit的時候產生2個相同值的Token。 繼續閱讀 “ASP.NET MVC架構下如何防範表單偽造(CSRF)”

【Asp.Net MVC】使用 ContextBoundObject 搭配 Attribute 實現 BLL 層及 DAL 層的 AOP Logging 機制

我曾經有發表過一篇「透過 Asp.Net MVC Filter 實作 Controller 層級的 Action Logging 機制」文章,
想必大家也跟我一樣好奇,
如果想更進一步得在 Controller 以外的 BLL 層(Service, 商業邏輯層)或 DAL 層(Repository, 資料訪問層),
掛載能 Logging 傳入 Action 參數值的攔截器到底該如何實作?

繼續閱讀 “【Asp.Net MVC】使用 ContextBoundObject 搭配 Attribute 實現 BLL 層及 DAL 層的 AOP Logging 機制”

透過 Asp.Net MVC Filter 實作 Controller 層級的 Action Logging 機制

.Net MVC Filter 有四種類型:Authorization(驗證)、Action(動作)、Result(結果)、Exception(例外),
有關各類型的介紹可參考 MSDN 的 Filtering in ASP.NET MVC 介紹,
以下本文將簡單介紹如何使用 Asp.Net MVC 中的 Action filters 來實作 Controller 層級 Action Logging 機制 ..

繼續閱讀 “透過 Asp.Net MVC Filter 實作 Controller 層級的 Action Logging 機制”

初探 ASP.NET MVC 多國語系(i18n)|#1: 觀念與基本做法

前言

猶記得第一次聽到 i18n 這個詞是在公司新人訓練 Java 課程的部分,當時聽著影片中講師不時提到的 i18n,我就一直在想這個「艾斯‧巴恩」到底是什麼東西,是一個機制?還是一個第三方套件?或是一個功能?一直到課程結束我也只模模糊糊地知道艾斯巴恩原來是 i18n,而這是個跟網站多國語系化有關的東西。

在新人訓練結束後下到專案將滿一年之際,專案出現了多國語系(嚴格來說是兩國語系:繁體中文跟英文)的需求,而我則被派任處理這個部分,也因此累積了一點心得,就在此與大家分享一番,話不多說了,咱們進入正文吧!

繼續閱讀 “初探 ASP.NET MVC 多國語系(i18n)|#1: 觀念與基本做法”

Model Validation:進階應用的遠端 API 驗證(Remote validation)

簡單來說,
Model Validation 就是開發者在 Model 中的 Metadata 中加上驗證指令,
搭配用戶端的 Client-side library 進行驗證的協同處理.
驗證規則被包含在 System.ComponentModel.DataAnnotations 命名空間

從 .Net MVC 3.0 版本開始,
前端驗證就開始採用 jQuery Validation 與 Unobtrusive JavaAcript 模式,
到了 4.0 版本,
.Net MVC 就已經將採用的相關熱門工具預設綁定在 Bundle 中,
開發時僅需載入 Bundle(@Script.Render(“~/bundles/jqueryval”) )即可開始實作.

以下將介紹兩種驗證模式的實作方式:Client-side validation & Remote validation

繼續閱讀 “Model Validation:進階應用的遠端 API 驗證(Remote validation)”