在 SampleCMS 系統中不管是前台或後台,從 GET (Request.QueryString) 與 POST (Request.Form) 傳送進系統的參數值皆會經過參數過濾機制的檢查,當系統發現參數值有疑似 XSS (Cross-Site Script) 或 SQL Injection 的指令關鍵字就會立刻終止開啟網頁的要求。
參數過濾機制使用參數過濾元件群來檢查各式各樣的規則,
以下說明參數過濾元件的各項功能以及使用方式,
2018/05/10
2018/05/08
SampleCMS 附件管理共用元件說明:附件下載共用元件 AttDownloadCommon 使用方式
在 附件管理功能概述 提到了 SampleCMS 附件管理的四項主要功能「儲存(更新)附件資訊與檔案、檢視附件資訊、下載附件檔案、刪除附件檔案」。
上一篇 附件管理共用元件 AttachFileManagerLogic 使用方式 說明附件管理共用元件 AttachFileManagerLogic 在上述功能中「儲存(更新)附件資訊與檔案、檢視附件資訊、刪除附件檔案」負責的工作。
這一篇繼續說明附件下載共用元件 AttDownloadCommon 在「下載附件檔案」負責的工作。
上一篇 附件管理共用元件 AttachFileManagerLogic 使用方式 說明附件管理共用元件 AttachFileManagerLogic 在上述功能中「儲存(更新)附件資訊與檔案、檢視附件資訊、刪除附件檔案」負責的工作。
這一篇繼續說明附件下載共用元件 AttDownloadCommon 在「下載附件檔案」負責的工作。
SampleCMS 附件管理共用元件說明:附件管理共用元件 AttachFileManagerLogic 使用方式
上一篇 附件管理功能概述 提到了 SampleCMS 附件管理的四項主要功能「儲存(更新)附件資訊與檔案、檢視附件資訊、下載附件檔案、刪除附件檔案」。
這一篇繼續說明附件管理共用元件 AttachFileManagerLogic 在上述功能中「儲存(更新)附件資訊與檔案、檢視附件資訊、刪除附件檔案」負責的工作。
這一篇繼續說明附件管理共用元件 AttachFileManagerLogic 在上述功能中「儲存(更新)附件資訊與檔案、檢視附件資訊、刪除附件檔案」負責的工作。
2018/05/07
SampleCMS 附件管理共用元件說明:附件管理功能概述
附件管理主要由「儲存(更新)附件資訊與檔案、檢視附件資訊、下載附件檔案、刪除附件檔案」這四項功能組成。而 SampleCMS 將檔案資訊與實體檔案分別存放在資料庫與磁碟,在實作程式上因此變得比較繁瑣以及需要較為謹慎,需確保檔案資訊與實體檔案皆儲存完成才算成功。
另一方面,其他的附件管理,例如:照片管理,或是在其他專案曾經製作的廣告橫幅管理、商品附件管理。它們在「儲存(更新)附件資訊與檔案、檢視附件資訊、下載附件檔案、刪除附件檔案」這四項功能中的程式流程與這個附件管理是相同的,差別在於可能需要檢查不同的檔案類型、儲存在磁碟的檔名採用不同格式、儲存在磁碟的不同目錄、甚至儲存在資料庫的不同資料表。
而這樣子的差別,不同的類型有著相同的行為但是行為裡的細項動作各自不同,蠻適合使用物件導向來設計共用相同的行為。因此在 SampleCMS 之中,製作了附件管理共用元件 AttachFileManagerLogic 與檔案下載功能的共用元件 AttDownloadCommon。
下列先以循序圖概略描述「儲存(更新)附件資訊與檔案、檢視附件資訊、下載附件檔案、刪除附件檔案」這四項功能,
另一方面,其他的附件管理,例如:照片管理,或是在其他專案曾經製作的廣告橫幅管理、商品附件管理。它們在「儲存(更新)附件資訊與檔案、檢視附件資訊、下載附件檔案、刪除附件檔案」這四項功能中的程式流程與這個附件管理是相同的,差別在於可能需要檢查不同的檔案類型、儲存在磁碟的檔名採用不同格式、儲存在磁碟的不同目錄、甚至儲存在資料庫的不同資料表。
而這樣子的差別,不同的類型有著相同的行為但是行為裡的細項動作各自不同,蠻適合使用物件導向來設計共用相同的行為。因此在 SampleCMS 之中,製作了附件管理共用元件 AttachFileManagerLogic 與檔案下載功能的共用元件 AttDownloadCommon。
下列先以循序圖概略描述「儲存(更新)附件資訊與檔案、檢視附件資訊、下載附件檔案、刪除附件檔案」這四項功能,
2018/05/04
[備忘錄分享] XSS (2009 年) 測試記錄
在 2009 年,我第一次接觸弱點掃描,看著掃描報告中的 XSS (Cross-Site Script) 跨網站指令碼漏洞描述,很好奇什麼樣的寫法會用來做為 XSS ,同時也想知道我該怎麼防堵 XSS 進而通過弱點掃描。
以下為當時我所記錄的內容,
當時我找到一個格主是 OpenBlue 的部落格,裡面寫了很多 XSS 相關的知識,我覺得是個寶庫(可惜現在這個部落格已經關了)。我在那個部落格中找到一篇叫做「淺析XSS(Cross Site Script)漏洞原理」的文章,照著文章裡的描述開始了我的摸索與測試。
今日再次搜尋「淺析XSS(Cross Site Script)漏洞原理」才知道原文出處在內地,還好這篇文章還看得到,請看 http://safe.it168.com/n/2007-07-04/20070704004201_all.shtml。
以下為當時我所記錄的內容,
[備忘錄分享] 簡介曾經做過的 Smart Client 架構
大約是 2006 年,那時的我從使用 C++ 寫遊戲程式轉換到使用 .net 寫視窗與網頁程式。
當時的工作是我從資策會學完 .net 之後的下一份工作。工作的內容是和公司的前輩一起製作一個電視購物的 ERP (Enterprise Resource Planning) 系統,主要的子系統如下,
傳統的 Window Form 程式,定位為 Rich Client (又叫 Fat Client, Thick Client),
相較於當時的網頁程式,Window Form 能夠使用更豐富的 UI 元件提供給使用者互動,但是缺點就是不易更新使用者手上的程式,每次的程式更新都得打包安裝檔並且讓每個使用者下載與安裝,不像網頁程式用瀏覽器只要重新打開原本的連結,網頁內容隨時都是最新版本。這個問題在使用者越多時會越令人頭痛。
網頁程式,定位為 Thin Client,
不像現在 2018 年,當時的網頁程式連 ajax 都還沒流行,網頁程式能提供給使用者的 UI 都很陽春,和視窗程式有很大的落差。不過其優點就像上一條提到的,發佈更新很方便,只要重新打開原本的連結,網頁內容隨時都是最新版本。
而 Smart Client 就是要取上述兩種的優點,要有 Window Form 程式的豐富 UI ,而且發佈更新像網頁程式一樣方便。
以下簡介當時製作的 Smart Client 系統架構,
當時的工作是我從資策會學完 .net 之後的下一份工作。工作的內容是和公司的前輩一起製作一個電視購物的 ERP (Enterprise Resource Planning) 系統,主要的子系統如下,
- 提供給電話客服人員使用的訂單系統。
- 提供給物流人員使用的進銷存系統。
傳統的 Window Form 程式,定位為 Rich Client (又叫 Fat Client, Thick Client),
相較於當時的網頁程式,Window Form 能夠使用更豐富的 UI 元件提供給使用者互動,但是缺點就是不易更新使用者手上的程式,每次的程式更新都得打包安裝檔並且讓每個使用者下載與安裝,不像網頁程式用瀏覽器只要重新打開原本的連結,網頁內容隨時都是最新版本。這個問題在使用者越多時會越令人頭痛。
網頁程式,定位為 Thin Client,
不像現在 2018 年,當時的網頁程式連 ajax 都還沒流行,網頁程式能提供給使用者的 UI 都很陽春,和視窗程式有很大的落差。不過其優點就像上一條提到的,發佈更新很方便,只要重新打開原本的連結,網頁內容隨時都是最新版本。
而 Smart Client 就是要取上述兩種的優點,要有 Window Form 程式的豐富 UI ,而且發佈更新像網頁程式一樣方便。
以下簡介當時製作的 Smart Client 系統架構,
2018/05/03
SampleCMS 前台網頁預覽功能驗證方式說明
SampleCMS 後台管理功能「網站架構管理」提供預覽尚未開放的前台網頁內容功能。
使用的方式如同操作手冊「3.1.使用情境:檢視指定網頁資料」提到的,
"若指定的網頁資料狀態是隱藏的或者不在上架期間,則檢視鈕會變更為預覽鈕,此時點選指定語系的預覽鈕,系統將以預覽模式開啟未開放的前台網頁,並且在前台網頁中出現「您正使用預覽模式檢視本頁」的提醒訊息
* 基於保密的原則,每一次用來預覽指定的前台網頁網址有時效限制,目前為10分鐘,當預覽用的網址產生超過10分鐘且繼續被用來開啟網頁時將導向錯誤頁,此時若還需要預覽指定的前台網頁,請回到網頁管理畫面點選預覽鈕重新產生。"
以下說明前台網頁預覽功能驗證方式,
使用的方式如同操作手冊「3.1.使用情境:檢視指定網頁資料」提到的,
"若指定的網頁資料狀態是隱藏的或者不在上架期間,則檢視鈕會變更為預覽鈕,此時點選指定語系的預覽鈕,系統將以預覽模式開啟未開放的前台網頁,並且在前台網頁中出現「您正使用預覽模式檢視本頁」的提醒訊息
* 基於保密的原則,每一次用來預覽指定的前台網頁網址有時效限制,目前為10分鐘,當預覽用的網址產生超過10分鐘且繼續被用來開啟網頁時將導向錯誤頁,此時若還需要預覽指定的前台網頁,請回到網頁管理畫面點選預覽鈕重新產生。"
以下說明前台網頁預覽功能驗證方式,
SampleCMS 網頁共用元件說明:前台相關元件分工說明
在說明完 後台相關元件分工說明 之後,繼續說明前台相關元件。
接下來以通用的多功能網頁程式 Article.aspx 為例說明前台相關元件以及各項的分工,包含 網頁共用元件說明:簡介 提到的前台網頁共用元件 FrontendPageCommon。
接下來以通用的多功能網頁程式 Article.aspx 為例說明前台相關元件以及各項的分工,包含 網頁共用元件說明:簡介 提到的前台網頁共用元件 FrontendPageCommon。
2018/05/01
SampleCMS 網頁共用元件說明:後台相關元件分工說明
製作網頁程式的時候,除了至今為止談過的資料層元件、帳號與權限系統元件、網頁內容發佈系統元件、網頁共用元件這些屬於資料層與邏輯層的共用元件,展示層也有需要共用的部分。以後台網頁為例,每一個清單頁都有下列元素「 Logo 圖、登入資訊、右上角使用者選單、左側系統功能選單」。
使用 ASP.NET Web Forms 製作網頁,常用來製作展示層共用元件的方式就是使用 MasterPage 與 UserControl。SampleCMS 也不例外,接下來以帳號清單頁 Account-List.aspx 為例說明後台相關元件以及各項的分工,包含前一篇 網頁共用元件說明:簡介 提到的後台網頁共用元件 BackendPageCommon(在帳號清單頁使用的是其衍生類別 AccountCommonOfBackend)。
使用 ASP.NET Web Forms 製作網頁,常用來製作展示層共用元件的方式就是使用 MasterPage 與 UserControl。SampleCMS 也不例外,接下來以帳號清單頁 Account-List.aspx 為例說明後台相關元件以及各項的分工,包含前一篇 網頁共用元件說明:簡介 提到的後台網頁共用元件 BackendPageCommon(在帳號清單頁使用的是其衍生類別 AccountCommonOfBackend)。
訂閱:
文章 (Atom)