網站設計中10個的網站安全漏洞
對於世界上這麼多公司來說,網站安全漏洞並不是管理的重點,直到他們面臨嚴重的漏洞。實際上,網路安全和安全問題應該是一個優先事項,因為如今我們實際上生活在一個非常數位化的世界中。安全漏洞是一個嚴重的問題,需要相應地解決。
10 個常見的網站安全漏洞
1. 注入漏洞
如果在過濾不受信任的輸入時出現經典故障,則會發生這些情況。當未過濾的數據傳遞到 SQL 伺服器、LDAP 伺服器或稱為 XSS 的瀏覽器時,可能會發生注入缺陷。當數據進入 SQL 伺服器時,該事件稱為 SQL 注入。當它進入 LDAP 伺服器時,我們調用 LDAP 注入。
這裡要的網站安全漏洞是攻擊者或黑客也可以向這些實體注入或發送命令,導致數據丟失。這會導致客戶端的瀏覽器被劫持。
每當您的應用程式從不受信任的來源接收到某些內容時,就必須對其進行過濾,否則就會成為網路安全問題。此外,永遠不應使用列入黑名單的項目或數據,因為它很容易被繞過。許多可用的防病毒軟體或應用程式都提供了黑名單失敗的例子。
但是,針對此安全漏洞的保護是可能的。這只是小心輸入的問題。在注入之前對其進行適當的過濾,並決定它是否可以信任。
2. 破解認證
此類別包括在身份驗證中斷事件期間發生的任何問題或安全漏洞。這些類型的網站安全漏洞可能有不同的根源。
避免此 Web 安全問題的最簡單方法是使用框架。如果您不喜歡滾動自己的代碼,那麼請了解可能存在哪些陷阱以防止或避免這種情況。
3. 跨站腳本
導致此安全漏洞的原因是黑客向您的 Web 應用程式提供 JavaScript 標籤作為輸入。然後,輸入會發送給用戶。用戶設備中的瀏覽器執行它。它甚至可以像黑客創建連結並要求用戶單擊它一樣簡單。當用戶單擊該連結時,該頁面將加載到他們的瀏覽器中並將 cookie 發送給黑客。
防止跨站腳本網站安全漏洞的方法,您需要做的就是確保您不會將HTML標籤返回給您的客戶端。這將保護您免受所有 HTML 注入,包括黑客發送純 HTML 輸入的攻擊類型。
避免此類 Web 安全問題的另一種方法是使用可以去除所有 HTML 標記的正則表達式。但是這種方法可能有點冒險,因為某些瀏覽器可能會將損壞的 HTML 解釋為沒問題。最好的方法是將所有字符轉換為對應的字符。
4. 不安全的直接對象引用
這是最常見的網站安全漏洞中的另一種。當您信任某些用戶的輸入,然後不得不付出代價或面臨後果時,就會發生這種情況。直接對象引用是指向用戶公開的文件或資料庫。如果引用來自黑客,就會導致麻煩,這意味著授權沒有強制執行,甚至可能被破壞。如果發生這種情況,黑客就可以訪問他不應該擁有的數據,或者被允許採取他不應該採取的行動。
此 Web 安全問題的一個示例可能是有人向您發送名為「download.php」的文件。這個文件應該使您能夠下載文件並使用 CGI 參數來標識文件的名稱(例如 download.php?file=anything.txt)。可能是因為懶惰、粗心或錯誤,Web 開發人員沒有在代碼中添加授權。任何黑客現在都可以輕鬆使用它並下載您正在運行或有權訪問的系統文件。它甚至可以包括備份、應用程式代碼本身或您在伺服器上放置的任何其他數據。
此類網站安全漏洞的另一個示例可能是在網站上重置密碼的功能。此功能依賴於用戶的輸入來確定需要重置誰的密碼。單擊有效 URL 後,黑客可以簡單地更改網頁上的用戶名欄位,並將文本替換為「admin」之類的內容。
如果您始終如一地勤奮地進行用戶授權,則可以避免此類網站漏洞。如果您在內部存儲數據並停止依賴通過 CGI 參數傳遞的數據,這也將減少進入此類安全漏洞的機會。
5. 安全配置
由於我們生活在一個充滿網站安全漏洞的世界中,錯誤配置的 Web 應用程式和伺服器比完美配置的 Web 應用程式和伺服器更常見。這為事情被搞砸和安全問題增加提供了場所和機會。由錯誤配置引起的安全問題的一些示例如下。
在啟用調試時運行應用程式。
由於目錄列表在伺服器上處於活動狀態,因此泄露了有價值的訊息。
使用過時的軟體,例如WordPress插件。
在您的設備上運行這麼多不必要的服務。
不更改您首次在網站或應用程式上創建帳戶時默認獲得的密碼或密鑰。
防止這些網路安全問題的方法是建立一個自動化的「構建和部署」機制。
6. 敏感數據暴露
一些網站安全漏洞是資源保護和加密。我們都知道敏感數據必須始終加密,即使數據處於靜止狀態或處於某種形式的傳輸中。這個規則真的沒有例外。
用戶密碼和信用卡訊息是最敏感的數據類型,不應在未加密的情況下存儲或傳輸。您應該始終保持密碼散列。您不應該使用弱加密算法。始終在敏感 cookie 上保留安全標誌。此外,受保護的數據不應存儲在加密密鑰旁邊。
這些措施再怎麼強調也不為過,因為它們將使您免受此類嚴重的網站漏洞的影響。
7. 缺少功能級訪問控制
這是導致安全問題的另一個授權失敗。當您在伺服器上調用一個函數並且沒有執行正確的授權時,就會出現一個問題,可以稱為缺少函數級訪問控制。很多時候,網站開發人員依賴於伺服器端生成某種 UI 的可能性。他們假設客戶端無法訪問設備伺服器未提供的任何功能。但實際上,黑客和攻擊者總是可以通過創建「隱藏」功能來偽造請求。
例如,有一個管理面板,它的按鈕僅存在於實際管理員用戶的瀏覽器的 UI 中。但是,如果缺乏授權,攻擊者很容易發現此功能並濫用它。
避免進入此類網站安全漏洞的簡單方法是始終確保正確進行授權。
8. 跨站請求偽造
簡而言之,這被稱為 CSRF。當某些其他方試圖訪問瀏覽器並且瀏覽器被欺騙讓該方濫用其權限時,就會發生這種情況。該第三方可能在瀏覽器內做一些事情來幫助攻擊者。
這樣做的方式是第三方網站向您的品牌網站發送請求,使用您的會話或您的 cookie 來欺騙瀏覽器是您。假設在任何時候,您都登錄了您的銀行應用程式或在線銀行網站,並且該網站面臨此類網站安全漏洞,您打開的第二個選項卡可能會濫用憑據並將其訪問權限提供給攻擊者。這會導致混淆代理錯誤。在這種情況下,代理被定義為濫用會話 cookie 代表攻擊者做某事的瀏覽器。
避免此類網站漏洞的方法是將密鑰或令牌存儲在隱藏且無法從任何第三方網站訪問的表單欄位中。
9. 使用已知漏洞的組件
這更像是一個網站維護問題。這種網站漏洞發生在網站被擁有的情況下,因為第三方應用程式長時間未打補丁。這種情況一直發生在 WordPress 插件上。
10. 未經驗證的重定向和轉發
這只是導致網站安全漏洞的另一個輸入過濾問題。假設一個網站有一個模塊「redirect.php」。它應該採用 GET 參數形式的 URL。但是當有人操縱參數時,將在例如「targetsite.com」上創建一個新 URL。這個新連結會將用戶重定向到「malwareinstall.com」。但是當這個連結在用戶的瀏覽器上打開時,他們可能會認為它是一個安全可信的站點並點擊它。實際上,單擊該連結會將它們發送到惡意軟體投放頁面。這是未經驗證的重定向或轉發的示例。
避免此類安全問題的最佳方法是根本不使用重定向。