The Will Will Web

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

如何辨識使用者從瀏覽器按下 F5 或 Ctrl + R 重新整理頁面

有時候有些頁面有計數器或者有些程式碼只需要讓使用者執行一遍而已,我們會不希望使用者拼命用 F5 或 Ctrl + R 重新整理頁面時擾亂程式的運作,要達成這個需求其實有很多作法,例如透過一個 Cookie、一個 Session 來做判斷,但今天我要分享一個暗黑密記,教你如何從 HTTP Request Header 就可以判斷出使用者正在執行該頁面的重新整理。

... 繼續閱讀 ...

善用 Response.IsClientConnected 避免不必要的資源浪費

你在使用網站時不知道有沒有一種經驗是當你按下某一個連結或一個表單按鈕時,突然發現你按錯了,然後你會立即按下 ESC 鍵或按下瀏覽器的停止按鈕中斷網頁執行?我以前就曾經遇到過好幾次這種狀況,而且有些網頁程式執行時間非常長且非常消耗系統資源,例如:匯出幾十萬筆資料、對大量資料進行彙總運算、從伺服器端執行一個長時間的 Web Service 查詢、…等等,雖然使用者很「直覺」的中斷執行,但是伺服器端的程式卻還是會在背景乖乖的把所有的工作做完才會罷手。

... 繼續閱讀 ...

設定 Cookie 時可善用 HttpOnly 特性減低網站安全風險(XSS)

Cookie hijacking 是個很常見的 XSS 攻擊手法,大多是利用網站既有的 XSS 漏洞並透過 JavaScript 取得 documnet.cookie 資料,而 documnet.cookie 就包含所有你在該網頁所有可用的 Cookie 資料,但若你的網站程式在設定 Cookie 的時候有特別加上 HttpOnly 屬性,就可以進一步避免該頁的 Cookie 被 JavaScript 存取,也可保護使用者的 Cookie 不會偷走。

... 繼續閱讀 ...

利用健康監視(healthMonitoring)監控你的 ASP.NET 網站狀況

ASP.NET 2.0 有個 健康監視(healthMonitoring) 功能,可用來追蹤所有 Web 應用程式執行時期所發生的各種事件,例如:應用程式啟動(Application_Start)、應用程式結束(Application_End)、不安全的存取、發生例外狀況、…等等。可監視的範圍不限於「發生錯誤」而已,包括整個 Web 應用程式的生命週期都可完整紀錄下來,以便日後分析 Web 應用程式的健康狀況。

... 繼續閱讀 ...

怪問題:當該檔案已經存在時,無法建立或陰影複製

我們有個網站專案,上週在客戶端開發程式時,由於不斷在更新程式,網頁上會不定時出現「當該檔案已經存在時,無法建立或陰影複製」的錯誤訊息,當下看到這個錯誤訊息感覺非常的陌生,我更新網頁程式跟「陰影複製」有何關係?由於該錯誤只要將 IIS 重啟或將應用程式集區回收即可解決,因此沒多留意,也沒將畫面複製下來,但我有用這個技巧將錯誤訊息轉換成英文,好讓下次出現時可進一步分析發生原因。

... 繼續閱讀 ...

解決 BlogEngine.NET 1.5.0 在安裝後出現中文亂碼的問題

這個週末透過 Web Platform Installer 2.0 安裝了 BlogEngine.NET 1.5.0 來用,安裝是非常容易,但安裝後首次開啟網頁卻發現一大堆中文亂碼 (如下圖示),下載原始碼研究之後隨即找到發生問題的主因,我發現在專案網站雖有人發問提到這個問題,但似乎幾個月下來尚未修復,如果有需要的人可以參考此文。

... 繼續閱讀 ...

推薦使用 Microsoft Anti-Cross Site Scripting Library v3.1

雖然我之前已經寫過一篇【 推薦使用 Microsoft Anti-Cross Site Scripting Library V3.0 】文章,而且這次 Anti-XSS Library v3.1 也只有小幅新增功能,但這次新增的兩個方法(Methods)卻是我盼望許久的功能,終於被我給等到了。我覺得任何開發 ASP.NET Web 應用程式的人都應該注意並使用這一套強大的 Anti-XSS Library,絕對有助於提升你現有 Web 應用程式的安全性。

... 繼續閱讀 ...