【51cto.com快譯】對安全性的考量應該從軟體的開發伊始就受到足夠的重視,這已然成為預防攻擊活動並保護全球使用者的重要前提。下面,我們一起來了解每位開發者皆應了解的基本安全常識。
對輸入內容保持懷疑
作為起點,軟體保護工作應該對一切接收到的資訊與資料進行檢查。事實上,預防惡意輸入內容接觸您的軟體並實施執行,將有效提公升攻擊或者安全違規行為獲得成功的難度。
然而,開發者往往更傾向於對輸入內容進行錯誤檢查。這顯然是種誤區,因為攻擊者可以輕鬆繞過這些非正確值,並且進入變更正確值的模式,以至於我們無法檢查到其篡改的內容。而作為開發者,我們應根據模式對輸入內容進行檢查,且拒絕一切與正常使用模式不符的輸入資訊。
減少攻擊面
所謂攻擊面,是指所有攻擊點與攻擊量的總和,黑客或者未授權使用者可能突破安全保護,接觸資料並竊取敏感資訊。所謂攻擊微量是指惡意**的執行方法,例如病毒或者蠕蟲,其能夠感染目標計算機並進一步傳播至更多裝置當中。
黑客只需要找出乙個薄弱點即可成功入侵。正因為如此,現代企業需要儘量減少攻擊面,同時利用視覺化系統繪製所有路徑、網路與裝置,從而及時發現弱點並消除相關威脅。
但同樣重要的是,減少攻擊面並不能降低黑客成功入侵之後所造成的危害與後果。事實上,減少攻擊面的作用在於降低發生安全問題的機率。具體來講,我們可以通過減少**執行量、減少未授權使用者可用**以及減少可利用入口點等方式實現攻擊面控制。
以安全方式應對失敗
每套系統都可能遭遇入侵,這種失敗是不可避免的。而黑客自然會積極利用各類手段促使這種失敗的發生,包括觸發特定故障以控制系統或軟體。正因為如此,我們必須制定合理的應急計畫。
在系統發生故障時,最重要的是確保預設值符合安全要求,即預設拒絕訪問。此外,大家應檢查故障返回值,撤銷其間的一切變更,並在故障後保證恢復至安全狀態。另外,即使可訪問性已經遭到破壞,系統的私隱性與完整性仍應保持不變。
另外,我們應確保黑客無法在系統故障期間訪問受保護的限制性資料。在系統發生故障時,往往會顯示一些與問題相關的敏感資訊,而這些很可能為攻擊方帶來啟發。因此,我們應在預設情況下要求系統故障出現時拒絕訪問,並僅在預設條件得到滿足後才重新恢復可訪問能力。
使用威脅建模
提公升軟體或應用程式安全性的最佳途徑之一,在於利用威脅建模對其進行測試。基本上,威脅建模就是在模擬攻擊者如何突破安全保護並奪取軟體控制權或盜竊有價值資料。開發者可以藉此發現軟體中的漏洞,並消除風險或威脅。
威脅建模應在開發流程起始時開始進行,並一直持續至流程結束。如此一來,開發者即可全程確保對安全漏洞的監控,同時發現編寫**時是否引發其它疏漏。
一般來講,威脅建模基於安全物件發現,例如對使用者身份進行保護、關注應用程式安全問題可能帶來的聲譽影響,同時對應用程式的資料流、元件與受信邊界加以衡量。在評估之後,我們即可立足安全威脅及漏洞層面對應用程式進行分析。另外,我們還應立足黑客視角模擬攻擊樹結構,進而確定攻擊條件。通過這種角色換位,大家將更好地防範攻擊並保護軟體。
軟體開發是一項複雜的流程,一旦黑客發現了可乘之機,那麼此前投入的一切努力都將付之東流。因此,每位開發者應從起步時即高度關注安全保障工作。事實已反覆證明,在問題發生後再行保護的實施難度與實現成本會更高昂。
這些你都知道嗎?
如果身邊有胃不好的人,請分享給ta 1 最養胃的,麵條 2 如果熬粥,少放點蘇打進去,3 小公尺粥就饅頭,可以養胃。4 有兩種飲料應該多喝,一是牛奶,二是熱水。5 胃不好,要少食多餐。6 大棗 豆腐 白菜 牛奶 胡蘿蔔 健脾和胃。7 花生,蜂蜜都是養胃的。8 紅茶 蜂蜜.十分養胃。計 喝水 法 1 ...
關於鏈結,這些你都知道嗎?
其實乙個靜態庫可以簡單地看成一組目標檔案的集合,即很多目標檔案經過壓縮打包後形成的乙個檔案。例如visual c 工具lib.exe,這個程式可以用來建立 提取 列舉.lib檔案中的內容。lib list libcmt.lib 鏈結過程中,目標檔案 包括靜態庫中的目標檔案 被鏈結成最終可執行的檔案。...
HTTP狀態碼 這些你都知道嗎
http狀態碼是網路響應的三位數字 下來我們來看一下http狀態碼有哪些,並且有什麼具體意義 狀態碼意義 100表示客戶端應該繼續傳送請求 101伺服器知曉了客戶端的請求,通知客戶端用不同協議完成這個請求 102代表處理將被繼續執行 200表示伺服器已經成功處理了請求 201表示請求成功並且伺服器穿...