發表文章

目前顯示的是有「程式原始碼資安弱點掃瞄」標籤的文章

經得起原始碼資安弱點掃描的程式設計習慣培養(十七)_OPEN_REDIRECT

pen redirect (OPEN_REDIRECT) sink: Calling Redirect. This call passes the tainted data, ....... (The virtual call resolves to System.Web.Mvc.Controller.Redirect(System.String).) 開放式重定向(釣魚攻擊),頁面跳轉過程並未驗證重定向目的網址是否安全。 Before 1 2 3 4 5 6 public async Task<ActionResult> Login(LoginViewModel model, string returnUrl) { [perform auth logic] return this .Redirect(returnUrl); } After 1 2 3 4 5 6 7 8 9 10 11 12 13 public async Task<ActionResult> Login(LoginViewModel model, string returnUrl) { [perform auth logic] if (Url.IsLocalUrl(returnUrl)) { return this .Redirect(returnUrl); } else { return RedirectToAction ( "Index" , "Home" ); } }一 一般來說除了驗證是否為本機路徑(非絕對路徑),以確保攻擊者無法將使用者重新導向到惡意外部網域,也能用以下確認是相對路徑(不是絕對路徑)方式來加強驗證 After2. 1 2 3 4 5 6 7 8 9 10 Uri targetUri = null ; if (Uri.TryCreate(Request.QueryString[ "ReturnUrl" ], UriKind.Relative, out targetUri)) { Response.Redir...

經得起原始碼資安弱點掃描的程式設計習慣培養(十六)_RISKY_CRYPTO_Risky cryptographic function(WEAK RSA KEY LENGTH)

 Using a key size less than 2048 bits with an asymmetric algorithm. An attacker with sufficient hardware can break this encryption by exhaustive key search CWE-326: Inadequate Encryption Strength https://cwe.mitre.org/data/definitions/326.html 由於密碼分析攻擊和雲端運算能力的進步,美國國家標準技術研究院 (NIST) 於 2011 年 1 月 1 日棄用了 1024 位元 RSA 金鑰。 憑證授權單位瀏覽器論壇以及所有瀏覽器的最新版本目前規定所有 RSA 金鑰的最小金鑰大小為 2048 位元。 (不安全程式碼)以下範例顯示RSACryptoServiceProvider 默認初始化若建構子捨麼都不指定就是 1024 位元長度的金鑰對。 RSACryptoServiceProvider alg = new RSACryptoServiceProvider(); same as RSACryptoServiceProvider alg = new RSACryptoServiceProvider(1024); (安全代碼)使用至少 2048 位元金鑰對配置RSACryptoServiceProvider 。 RSACryptoServiceProvider alg = new RSACryptoServiceProvider(2048); SEC0125 - WEAK RSA KEY LENGTH https://pumascan.com/rules/

經得起原始碼資安弱點掃描的程式設計習慣培養(十五)_HARDCODED_CREDENTIALS(Use of hard-coded password)

在程式碼中直接使用hard code密碼。 存在以下風險: 安全風險:硬編碼的密碼容易被攻擊者發現和濫用。如果攻擊者能夠獲取程式碼,他們就可以輕易地找到密碼,並使用它來進行未授權的存取。 維護風險:當密碼需要更改時,必須修改程式碼並重新編譯應用程式。這樣的做法不僅不安全,還會增加維護成本和風險。 修正方法建議: 1.使用安全的密碼儲存方式:避免在程式碼中直接使用硬編碼的密碼。相反,您可以使用安全的密碼儲存方式,例如使用加密的配置文件、密碼管理工具或密碼保險箱。 2.使用配置文件或環境變數:將密碼存儲在配置文件或環境變數中,而不是直接在程式碼中硬編碼。這樣可以使密碼與程式碼分離,並且可以輕鬆地更改密碼而不需要修改程式碼。 3.使用身份驗證和授權機制:使用適當的身份驗證和授權機制,例如使用 OAuth、JWT 或其他安全標準來保護應用程式的存取權限。 4.密碼管理最佳實踐:遵循密碼管理的最佳實踐,例如使用強密碼、定期更換密碼、限制密碼存取權限等。 在此建議用第2種方式配置到web.config或app.config 來重構程式

經得起原始碼資安弱點掃描的程式設計習慣培養(十四)_MISSING_THROW

https://www.reddit.com/r/ProgrammerHumor/comments/9msvuu/catchexception_e_silently_fail/ 最近在修正asp.net mvc系統的中風險弱點 剛好遇到之前沒看過的新弱點 有些名稱不同但原理修正方式跟之前在工研院用的checkmarx差不多 這邊記錄一下Coverity的弱點修補 Exception not thrown 在程式碼中創建了一個例外 (Exception) 物件,但沒有將其拋出 (throw)。 可能導致以下問題: 錯誤處理不完整:如果沒有將例外拋出,程式碼將無法正確處理錯誤情況。這可能導致程式繼續執行,而不是進行適當的錯誤處理。 錯誤訊息無法捕獲:如果例外沒有被拋出,其他程式碼也無法捕獲和處理該例外。這可能導致錯誤訊息無法被正確地記錄或顯示給使用者。 只要把程式段落中有new Exception("....") 多補上throw 在前面即可通關

Coverity程式碼弱點掃描修正_常使用指令集cov-build跟cov-analyze

圖片
Coverity 2022.6.0 Command and Ant Task Reference cov-build Intercept all calls to the compiler invoked by the build system and capture source code from the file system. cov-build    (--dir <intermediate_directory> | --da-broker <broker_servername:port>)    [--capture-ignore <program.extension>]    [--fs-capture-list <file>]    [--fs-capture-search <directory>]    [--test-capture]    [ OPTIONS ]    BUILD_COMMAND | --no-command The cov-build command is the primary tool to capture and emit source code. It performs build capture, where source code is emitted by intercepting all calls to the compiler invoked by the build system. It also performs filesystem capture, where source code is emitted directly from the file system. (For more information about the build capture processes, see the section "Coverity Analyses" in the overview to the Coverity Analysis 2022.6.0 User and Administrator Guide....

Coverity程式碼弱點掃描修正_jQuery Dom XSS修正

圖片
  jquery一些DOM操作容易引發DOM 的XSS風險 xss_sink: Calling echo with the tainted value in any argument. The untrusted data reaches a sink that may allow an attacker to control part of the response 幾項備用方案 解法1. https://github.com/chrisisbeef/jquery-encoder/tree/master/site 解法2. https://github.com/cure53/DOMPurify 解法3. https://github.com/leizongmin/js-xss 目前測試採用第一種方式就可以問題排除 JavaScript-Escaping一些library將其引用近來做相應api包覆使用即可 參考Link: https://www.edgescan.com/wp-content/uploads/2018/08/04.-XSS-and-Encoding-edgescan.pdf https://research.securitum.com/mutation-xss-via-mathml-mutation-dompurify-2-0-17-bypass/ https://blog.techbridge.cc/2021/05/15/prevent-xss-is-not-that-easy/ https://jsxss.com/zh/starter/quickstart.html

Coverity程式碼弱點掃描修正_PHP_XSS

圖片
https://www.hitachi-solutions.co.jp/coverity/  Coverity是一套用於靜態程式碼白箱弱點掃描的軟體 https://scan.coverity.com/ PHP當中若遇到類似要將url給render出來的一些function 通常只需要在外包覆 urlencode(htmlspecialchars( 回傳URL的程式段落可能是函數 )) 若是涉及url連結開啟的href,src或者js/jquery dom 操作一律用 urlencode(htmlspecialchars(URL回傳內容))來包覆 htmlspecialchars 將 HTML 符號變成不可執行的符號 大於(>)小於(<)符號、單引號(‘)或雙引號(“”)及&字元 urlencode 針對URL相關資料或參數進行編碼 例如: <?php echo urlencode(htmlspecialchars(會回傳URL函數())); ?> 反之其他輸出情況 若不允許html有效可直接用來防止非預期的輸出或惡意腳本渲染 <?php echo htmlspecialchars(某PHP函數(),ENT_QUOTES,’UTF-8’);?> (備註:預設htmlspecialchars($string)只轉化雙引號,不對單引號做轉義。

經得起原始碼資安弱點掃描的程式設計習慣培養(十三)_Missing Column Encryption

圖片
  接續前幾篇系列 經得起原始碼資安弱點掃描的程式設計習慣培養(一)_OWASP Top 10(十大網站安全風險)_學習寫更安全程式碼的網站推薦 經得起原始碼資安弱點掃描的程式設計習慣培養(二)_8.Insecure Deserialization :不安全的反序列化漏洞ASP.NET處理方式 經得起原始碼資安弱點掃描的程式設計習慣培養(三)_7.Cross Site Scripting(XSS)_Stored XSS_Reflected XSS All Clients 經得起原始碼資安弱點掃描的程式設計習慣培養(四)_1.Injection注入攻擊_SQL Injection)_order by 語句正確參數化套入 經得起原始碼資安弱點掃描的程式設計習慣培養(四)_2.Injection注入攻擊_SQL Injection_In語句正確參數化套入 經得起原始碼資安弱點掃描的程式設計習慣培養(五)_Missing HSTS Header 經得起原始碼資安弱點掃描的程式設計習慣培養(六)_Path Traversal 經得起原始碼資安弱點掃描的程式設計習慣培養(七)_Code Injection 經得起原始碼資安弱點掃描的程式設計習慣培養(八)_Client DOM XSS 經得起原始碼資安弱點掃描的程式設計習慣培養(九)_Use of Cryptographically Weak PRNG(Pseudo-Random Number Generator) 經得起原始碼資安弱點掃描的程式設計習慣培養(十)_Heap Inspection 經得起原始碼資安弱點掃描的程式設計習慣培養(十一)_HttpOnlyCookies In Config 經得起原始碼資安弱點掃描的程式設計習慣培養(十二)_Data Filter Injection 可能發生的問題 將資料存於純文字會讓擁有瀏覽伺服器權限的使用者獲得機密資料。 原因 資料庫的欄位以明文形式儲存,代表如果能通到SQL server 就能輕鬆讀取資料。 將資料存入欄位時加密,既可以保密也不會有風險 。 建議 欄位加密是在SQL server 2017 以及 Azure SQL DB才問世的,如果 在使用這兩個伺服器的話,建議開起Column Encryption 來 確保在SQL server的資料是安全的。

經得起原始碼資安弱點掃描的程式設計習慣培養(十二)_Data Filter Injection

圖片
  接續前幾篇系列 經得起原始碼資安弱點掃描的程式設計習慣培養(一)_OWASP Top 10(十大網站安全風險)_學習寫更安全程式碼的網站推薦 經得起原始碼資安弱點掃描的程式設計習慣培養(二)_8.Insecure Deserialization :不安全的反序列化漏洞ASP.NET處理方式 經得起原始碼資安弱點掃描的程式設計習慣培養(三)_7.Cross Site Scripting(XSS)_Stored XSS_Reflected XSS All Clients 經得起原始碼資安弱點掃描的程式設計習慣培養(四)_1.Injection注入攻擊_SQL Injection)_order by 語句正確參數化套入 經得起原始碼資安弱點掃描的程式設計習慣培養(四)_2.Injection注入攻擊_SQL Injection_In語句正確參數化套入 經得起原始碼資安弱點掃描的程式設計習慣培養(五)_Missing HSTS Header 經得起原始碼資安弱點掃描的程式設計習慣培養(六)_Path Traversal 經得起原始碼資安弱點掃描的程式設計習慣培養(七)_Code Injection 經得起原始碼資安弱點掃描的程式設計習慣培養(八)_Client DOM XSS 經得起原始碼資安弱點掃描的程式設計習慣培養(九)_Use of Cryptographically Weak PRNG(Pseudo-Random Number Generator) 經得起原始碼資安弱點掃描的程式設計習慣培養(十)_Heap Inspection 經得起原始碼資安弱點掃描的程式設計習慣培養(十一)_HttpOnlyCookies In Config Data Filter Injection風險 可能發生問題 攻擊者可能直接存取所有系統的資料。 使用簡單的工具和文字編輯時,攻擊者可以竊取儲存在伺服器中緩存區 (如個人的詳細訊息或信用卡)的任何敏感資訊,並可能更改或刪除隨後被用於其他使用者或依賴安全性決策現有資料。程式臨時的儲存並查詢資料於緩存區中。該應用程序通過簡單的連接字符串包括使用者的輸入建立查詢。由於使用者的輸入包含既沒有檢查資料類型有效性,隨後也未經消毒的命令。 通常也時常發生在 DataTable的Select Filter沒有經過處理 checkmarxC#提...

經得起原始碼資安弱點掃描的程式設計習慣培養(十一)_HttpOnlyCookies In Config

圖片
  https://zh-yue.wikipedia.org/wiki/%E6%9B%B2%E5%A5%87   接續前幾篇系列 經得起原始碼資安弱點掃描的程式設計習慣培養(一)_OWASP Top 10(十大網站安全風險)_學習寫更安全程式碼的網站推薦 經得起原始碼資安弱點掃描的程式設計習慣培養(二)_8.Insecure Deserialization :不安全的反序列化漏洞ASP.NET處理方式 經得起原始碼資安弱點掃描的程式設計習慣培養(三)_7.Cross Site Scripting(XSS)_Stored XSS_Reflected XSS All Clients 經得起原始碼資安弱點掃描的程式設計習慣培養(四)_1.Injection注入攻擊_SQL Injection)_order by 語句正確參數化套入 經得起原始碼資安弱點掃描的程式設計習慣培養(四)_2.Injection注入攻擊_SQL Injection_In語句正確參數化套入 經得起原始碼資安弱點掃描的程式設計習慣培養(五)_Missing HSTS Header 經得起原始碼資安弱點掃描的程式設計習慣培養(六)_Path Traversal 經得起原始碼資安弱點掃描的程式設計習慣培養(七)_Code Injection 經得起原始碼資安弱點掃描的程式設計習慣培養(八)_Client DOM XSS 經得起原始碼資安弱點掃描的程式設計習慣培養(九)_Use of Cryptographically Weak PRNG(Pseudo-Random Number Generator) 經得起原始碼資安弱點掃描的程式設計習慣培養(十)_Heap Inspection 在網頁風險中掃描當遇到位於web.config中設定安全性不足問題 比如沒有定義 "httpOnly" 標記來保護 cookie中的敏感資訊,可能會遭 客戶端腳本(client-side scripts)存取session cookie。 至web.config 修改階層如下 <configuration> <system.web> <httpCookies httpOnlyCookies="true" requireSSL=...

經得起原始碼資安弱點掃描的程式設計習慣培養(十)_Heap Inspection

圖片
    接續前幾篇系列 經得起原始碼資安弱點掃描的程式設計習慣培養(一)_OWASP Top 10(十大網站安全風險)_學習寫更安全程式碼的網站推薦 經得起原始碼資安弱點掃描的程式設計習慣培養(二)_8.Insecure Deserialization :不安全的反序列化漏洞ASP.NET處理方式 經得起原始碼資安弱點掃描的程式設計習慣培養(三)_7.Cross Site Scripting(XSS)_Stored XSS_Reflected XSS All Clients 經得起原始碼資安弱點掃描的程式設計習慣培養(四)_1.Injection注入攻擊_SQL Injection)_order by 語句正確參數化套入 經得起原始碼資安弱點掃描的程式設計習慣培養(四)_2.Injection注入攻擊_SQL Injection_In語句正確參數化套入 經得起原始碼資安弱點掃描的程式設計習慣培養(五)_Missing HSTS Header 經得起原始碼資安弱點掃描的程式設計習慣培養(六)_Path Traversal 經得起原始碼資安弱點掃描的程式設計習慣培養(七)_Code Injection 經得起原始碼資安弱點掃描的程式設計習慣培養(八)_Client DOM XSS 經得起原始碼資安弱點掃描的程式設計習慣培養(九)_Use of Cryptographically Weak PRNG(Pseudo-Random Number Generator) 風險: 應用程式在未加密的memory中存儲的所有變數都可能被主機特權User(privileged access)未經授權的檢索。 例如,特權攻擊者可以對正在執行的process掛上debugger,也可能從swapfile 或crash dump file中檢索process's memory。一旦攻擊者 在Memory中找到User的密碼,就可以輕鬆的假冒User進入系統。 如何避免: 字串變數是不變的(immutable) 換言之,一旦分配了字串變數,就無法更改或刪除其值。 因此,這些字串可能會無限期的留存在memory中,而且 可能分散在多個位置中,直到垃圾收集器(garbage collector)將其刪除。 敏感資料,例如密碼,將作為明文在memory中暴露,無法控制其生命週期。 ...

經得起原始碼資安弱點掃描的程式設計習慣培養(九)_Use of Cryptographically Weak PRNG(Pseudo-Random Number Generator)

圖片
  接續前幾篇系列 經得起原始碼資安弱點掃描的程式設計習慣培養(一)_OWASP Top 10(十大網站安全風險)_學習寫更安全程式碼的網站推薦 經得起原始碼資安弱點掃描的程式設計習慣培養(二)_8.Insecure Deserialization :不安全的反序列化漏洞ASP.NET處理方式 經得起原始碼資安弱點掃描的程式設計習慣培養(三)_7.Cross Site Scripting(XSS)_Stored XSS_Reflected XSS All Clients 經得起原始碼資安弱點掃描的程式設計習慣培養(四)_1.Injection注入攻擊_SQL Injection)_order by 語句正確參數化套入 經得起原始碼資安弱點掃描的程式設計習慣培養(四)_2.Injection注入攻擊_SQL Injection_In語句正確參數化套入 經得起原始碼資安弱點掃描的程式設計習慣培養(五)_Missing HSTS Header 經得起原始碼資安弱點掃描的程式設計習慣培養(六)_Path Traversal 經得起原始碼資安弱點掃描的程式設計習慣培養(七)_Code Injection 經得起原始碼資安弱點掃描的程式設計習慣培養(八)_Client DOM XSS 在判讀上屬於中風險的漏洞 通常在於應用程式裡面使用的Random亂數功能不夠隨機亂或者隨機範圍很好被預測到因為範圍較小。 風險 可能發生什麼問題 隨機數值通常被用來作為防止惡意使用者猜測如密碼、加密金鑰或session識別元等數值的機制,依照此 隨機數值用途的不同,攻擊者能夠有辦法預測下一個或已經產生過的隨機值,這使得攻擊者可以奪取另 外一位使用者的session,並取代他的身分,或是破解一組加密金鑰 (端看這組偽隨機值的用途)。 原因 如何發生 應用程式使用較弱的演算法來產生偽隨機值,代表決定其他數值的樣本大小相對來說是較小的。因為產 生隨機值所使用的偽隨機值產生器是基於統計學上的均勻分布所設計的,具有近似確定性。所以在收集 到數個產生出來的數值 (建立幾個獨立session然後收集session辨識碼) 後,攻擊者就有可能計算出其他的session辨識值。 更準確的說,如果這組偽隨機值被用做任何安全性使用,如密碼、金鑰、或是隱密辨識值,攻擊者就可以 預測下一個或已經產生的數值。 如何避...

經得起原始碼資安弱點掃描的程式設計習慣培養(四)_2.Injection注入攻擊_SQL Injection_In語句正確參數化套入

圖片
 接續前幾篇系列 經得起原始碼資安弱點掃描的程式設計習慣培養(一)_OWASP Top 10(十大網站安全風險)_學習寫更安全程式碼的網站推薦 經得起原始碼資安弱點掃描的程式設計習慣培養(二)_8.Insecure Deserialization :不安全的反序列化漏洞ASP.NET處理方式 經得起原始碼資安弱點掃描的程式設計習慣培養(三)_7.Cross Site Scripting(XSS)_Stored XSS_Reflected XSS All Clients 經得起原始碼資安弱點掃描的程式設計習慣培養(四)_1.Injection注入攻擊_SQL Injection)_order by 語句正確參數化套入 經得起原始碼資安弱點掃描的程式設計習慣培養(五)_Missing HSTS Header 經得起原始碼資安弱點掃描的程式設計習慣培養(六)_Path Traversal 經得起原始碼資安弱點掃描的程式設計習慣培養(七)_Code Injection 經得起原始碼資安弱點掃描的程式設計習慣培養(八)_Client DOM XSS 之前已經有修正過SQL Injection的經驗了是在針對order by情境 而這次遇到舊專案是在於In 一些參數的動態組字串的問題引發白箱弱掃 雖然前人已經有改用參數化方式但仍然會引發Injection風險 首先前人寫一段回傳DataSet給外面資料DataBind的dal函數 在外部呼叫時候 他傳入參數的準備處理比較容易有風險 用字串橫線分割 但傳入到function仍需要轉回成陣列或集合的型別 也會有多此一舉 所以其實在function設計上傳入參數一開始就指定傳入類似List之類的集合型別就好了 再針對In裡面要傳進的參數先prepare好一個condition string 如此可降低一些被弱掃認為是有風險的寫法 少點動態組字串問題

經得起原始碼資安弱點掃描的程式設計習慣培養(八)_Client DOM XSS

圖片
  接續前幾篇系列 經得起原始碼資安弱點掃描的程式設計習慣培養(一)_OWASP Top 10(十大網站安全風險)_學習寫更安全程式碼的網站推薦 經得起原始碼資安弱點掃描的程式設計習慣培養(二)_8.Insecure Deserialization :不安全的反序列化漏洞ASP.NET處理方式 經得起原始碼資安弱點掃描的程式設計習慣培養(三)_7.Cross Site Scripting(XSS)_Stored XSS_Reflected XSS All Clients 經得起原始碼資安弱點掃描的程式設計習慣培養(四)_1.Injection注入攻擊_SQL Injection)_order by 語句正確參數化套入 經得起原始碼資安弱點掃描的程式設計習慣培養(五)_Missing HSTS Header 經得起原始碼資安弱點掃描的程式設計習慣培養(六)_Path Traversal 經得起原始碼資安弱點掃描的程式設計習慣培養(七)_Code Injection 近期維護到一個10幾年前的一個網站 在修正CheckMarx風險時候踏到一個 問題在於引入的這一個嵌入 Flash套件swfobject.js 由於專案本身其實沒有再使用了 所以解法就是移除掉該swf套件跟引入的部分 Ref: 瀏覽器現在已經不支援 flash,要怎麼播放 SWF 檔案? https://steachs.com/archives/55733 網頁設計師一定要會的Swfobject.js 崁入Flash .SWF https://ucamc.com/articles/107-swfobject-js-flash swfobject - 網頁輕鬆嵌入 Flash https://blog.amowu.com/swfobject-flash/ 如何安全地嵌入任何Flash文件(SWF)? (How to safely embed any flash file (swf)?) https://zh-tw.coderbridge.com/discussions/b83ba1b6041e4593af2061dc32e7e323

經得起原始碼資安弱點掃描的程式設計習慣培養(七)_Code Injection

圖片
  接續前幾篇系列 經得起原始碼資安弱點掃描的程式設計習慣培養(一)_OWASP Top 10(十大網站安全風險)_學習寫更安全程式碼的網站推薦 經得起原始碼資安弱點掃描的程式設計習慣培養(二)_8.Insecure Deserialization :不安全的反序列化漏洞ASP.NET處理方式 經得起原始碼資安弱點掃描的程式設計習慣培養(三)_7.Cross Site Scripting(XSS)_Stored XSS_Reflected XSS All Clients 經得起原始碼資安弱點掃描的程式設計習慣培養(四)_1.Injection注入攻擊_SQL Injection)_order by 語句正確參數化套入 經得起原始碼資安弱點掃描的程式設計習慣培養(五)_Missing HSTS Header 經得起原始碼資安弱點掃描的程式設計習慣培養(六)_Path Traversal 近期在修正CheckMarx風險時候踏到一個 比較陌生沒看過的項目Code Injection 果真也是源自於Invoke 的 參數值是來自 Client Request送來的資料。 由於後來資料是卡在Url內容丟給一隻Web Service經過 CodeDom 去Compile出Client端後發送 (透過webservice來間接寄信) 就暫時針對其進行UrlEncode #更 2021/9/17 可能要將程式中有透過.Invoke跟MethodInfo反射的寫法改寫避免透過這類寫法 後來改為SmtpClient來寄信了 Ref: Code_Injection https://rainmakerho.github.io/2020/11/13/checkmarx-csharp-code-injection/ How To: Protect From Injection Attacks in ASP.NET https://docs.microsoft.com/en-us/previous-versions/msp-n-p/ff647397(v=pandp.10)?redirectedfrom=MSDN

經得起原始碼資安弱點掃描的程式設計習慣培養(六)_Path Traversal

圖片
  接續前幾篇系列 經得起原始碼資安弱點掃描的程式設計習慣培養(一)_OWASP Top 10(十大網站安全風險)_學習寫更安全程式碼的網站推薦 經得起原始碼資安弱點掃描的程式設計習慣培養(二)_8.Insecure Deserialization :不安全的反序列化漏洞ASP.NET處理方式 經得起原始碼資安弱點掃描的程式設計習慣培養(三)_7.Cross Site Scripting(XSS)_Stored XSS_Reflected XSS All Clients 經得起原始碼資安弱點掃描的程式設計習慣培養(四)_1.Injection注入攻擊_SQL Injection)_order by 語句正確參數化套入 經得起原始碼資安弱點掃描的程式設計習慣培養(五)_Missing HSTS Header https://spanning.com/blog/directory-traversal-web-based-application-security-part-8/ Path Traversal 為一種利用網站的安全驗證潛在缺陷(如傳遞特定字符串至文件應用程式接口)來列出伺服器目錄的漏洞利用方式。  該攻擊手段的目的是利用存在缺陷的應用程式來獲得目標文件系統上的非授權訪問權限。 過去重大事件 遠通電收再度出包!eTag官網遭駭,民眾資料外洩 https://www.techbang.com/posts/16432-far-powered-collection-again-etags-official-website-were-terrible-population-data-leaks 近期實際案例 中興保全Dr.ID 門禁考勤系統 - Path Traversal https://www.twcert.org.tw/tw/cp-132-4906-89381-1.html 近期遇到這項掃描報告要做改善 對斜線、反斜線及點符號做一個取代為空字串處理 1 2 3 4 5 6 7 8 9 10 //https://owasp.org/www-community/attacks/Path_Traversal /// <summary> /// 取代會導致Path Traversal的符號 /// </summ...

經得起原始碼資安弱點掃描的程式設計習慣培養(五)_Missing HSTS Header

圖片
  接續前幾篇系列 經得起原始碼資安弱點掃描的程式設計習慣培養(一)_OWASP Top 10(十大網站安全風險)_學習寫更安全程式碼的網站推薦 經得起原始碼資安弱點掃描的程式設計習慣培養(二)_8.Insecure Deserialization :不安全的反序列化漏洞ASP.NET處理方式 經得起原始碼資安弱點掃描的程式設計習慣培養(三)_7.Cross Site Scripting(XSS)_Stored XSS_Reflected XSS All Clients 經得起原始碼資安弱點掃描的程式設計習慣培養(四)_1.Injection注入攻擊_SQL Injection)_order by 語句正確參數化套入 最近又遇到被若安掃描到高風險要修正的程式碼啦.... 一看這還真是搞不懂該怎麼修呢 HSTS(HTTP Strict Transport Security)  主要是一份國際標準規格 (RFC 6797) 的網際網路瀏覽安全機制, 用於宣告瀏覽器與伺服器之間通訊方式必須強制採用 TLS/SSL 加密通道。 只要從伺服器端送出一個 Strict-Transport-Security 標頭 (Header) 給瀏覽器,即可告知瀏覽器於未來的某段時間內一律使用 SSL 來和該網站連接 (設定可涵蓋所有子域名網站), 一旦發生憑證失效情況,使用者將無法再瀏覽該網站,如此一來便可大幅減少中間人攻擊的問題發生。 再更白話一點 HSTS Header 就是負責將 http 強制轉為 https CheckMarx掃碼報告給的說明 ============================================================ 風險: 如果web config沒有設置HSTS表頭、"max-age"(有效期)不足一年, 或沒有設定"includeSubDomains"(包含所有子網域),可能會使用戶容易遭受中間人攻擊。 發生原因: 許多使用者只要在瀏覽器的網址列輸入網域名稱(Domain Name)即可瀏覽網站, 並沒有輸入協定(Protocol)的名稱。 瀏覽器會自動假設使用者使用的是HTTP協定而不是有加密機制的HTTPS協定。 在第一次發出前往特定網站的請求時,攻擊者可以執行中間人攻擊並將用戶轉址到...