跨站指令碼攻擊(cross site scripting),因為簡寫css,與層疊樣式表(cascading style sheets)有歧義,所以取名xss
原理:在網頁中嵌入惡意指令碼程式,在客戶端瀏覽器執行(如使用者輸入資料轉換成**執行)
防範:輸入資料html轉義處理(主流框架預設支援)
原理:sql偽裝成http請求引數
例如乙個登入操作,輸入帳號密碼
假設後台的sql是這樣拼裝的:select * from user where username = '輸入的帳號' and password='輸入的密碼'
那麼,我從客戶端輸入帳號:admin 輸入密碼:' or '1'='1
傳到後台後,拼裝結果變成:select * from user where username = 'admin' and password='' or '1'='1'
結果是能查出資料,後台就以為帳號和密碼正確
防範:使用預編譯語句(preparedstatement)、使用orm框架、避免密碼明文存放、異常處理(避免異常直接給到前台)
跨站請求偽造
原理:使用者在瀏覽器登入了站點a,生成了a的cookie;然後訪問惡意站點b,b要求訪問a,就可以帶著a的cookie去訪問a站點了,從而使b站點沒有認證和授權的情況下獲取到了a站點的資料
防範:cookie設定成httponly;新增自定義token;使用referer(知道請求的源頭)
主要不是由開發人員防範
原理:上傳可執行檔案和指令碼;不對上傳檔案進行校驗;獲取伺服器許可權
防範:根據檔案magicnumber判斷檔案型別(jpeg:ffd8ff);檔案長度限制;使用第三方框架
分布式拒絕服務攻擊(distributed denial of service)
dos:使用合理的客戶端請求占用過多的伺服器資源,從而使合法使用者無法使用服務
ddos:數量龐大的計算器聯合攻擊,這些計算器是分布式的
方式:syn flood 偽造syn報文;dns query flood;http flood
dns網域名稱挾持、cdn回源共計、伺服器許可權提公升、緩衝區溢位
系統安全性設計
系統安全性設計可以劃分為如下幾個層次 程式設計安全性 程式部署及作業系統安全性 資料庫安全性 網路安全性 物理安全性 就程設計的安全性,針對現在大多系統的分布式結構,因為同時要面向不同地理位置,不同網路位址,不同級別,不同許可權的使用者提供服務,稍不留神就可能產生潛在的安全隱患,如下是最常見的由設計...
如何提高Linux系統安全性
1 取消不必要的服務 早期的unix版本中,每乙個不同的網路服務都有乙個服務程式在後台執行,後來的版本用統一的 etc inetd伺服器程式擔此重任。inetd是internetdaemon的縮寫,它同時監視多個網路埠,一旦接收到外界傳來的連線資訊,就執行相應的tcp或udp網路服務。由於受inet...
如何保障系統安全性
怎麼保證系統的安全性 1.md5加密使用者密碼 使用者密碼採用md5加密 2.cookies加密 儲存cookies時,對儲存於cookies中的資料採用了以md5加密為基礎,加入隨機加密因子的專用型改進加密演算法。cookies中儲存的資料不可能被截獲 3.sql注入防護 可設定四道安全防護 a ...