標籤:網路編程| poll|epoll
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M02/78/3B/wKioL1Z4sNyR1HHTAALGkOT_xTQ973.jpg" title="b85e62c678b4a8859b03671be2e6a1bf_b.jpg" alt="wKioL1Z4sNyR1HHTAALGkOT_xTQ973.jpg" />
這篇曾經是答在這裡的 互連網中TCP Socket伺服器的實現過程需要考慮哪些安全問題- auxten 的回答
最近總是有人問我相關的問題,在專欄補發一下,希望能幫到更多人
首先,這是個很大的命題,之前在360負責過幾個對外的服務的研發,也算是有點小經驗,我試著答一下
在Internet環境下安全問題我主要分為如下幾類
1. 資訊傳輸過程中被駭客竊取
2. 伺服器自身的安全
3. 服務端資料的安全
首先,如果能用https,就盡量用https,能用nginx等常見伺服器,就用常見伺服器,主要能避免以下問題:
所幸,私人協議服務的攻擊需要駭客分析協議,這就給一般的小服務增加了一層保護。但如果是在大公司做事,樹大招風,就必須至少做到理論上沒有安全性漏洞。神馬,xor混淆一下,C/S端寫死一個對稱金鑰這種掩耳盜鈴的事情就不要做了,不然會死的很難看。
如果需要自己實現Server端,實現一套合格的SSL還是很考驗功底的:
首先要弄明白SSL加密體系金鑰交換的原理
對各種對稱、非對稱式加密演算法要有深刻的理解
用非對稱式加密演算法怎麼實現一套金鑰交換體系
如何處理ca認證在自簽名情況下怎麼避免中間人攻擊
工程實現過程中,要考慮
各種可能的緩衝區溢位攻擊
SYN flood攻擊慢串連攻擊
DDoS防起來有難度但至少能防禦DoS攻擊
商務邏輯層面,要考慮
每個介面都要做好使用者&許可權驗證
介面會不會被人亂用重放攻擊
攻擊方會不會找到一個比較消耗服務端資源的介面用很小的代價耗盡服務端資源
使用者的使用者名稱密碼會不會被通過介面破解參見2014 celebrityphoto hack
你的服務會不會被駭客利用去攻擊別的服務特別是會根據使用者輸入抓取什麼資源的服務
古老的SQL注入
無恥的仿冒服務DNS欺詐
涉及HTML的還要考慮跨站……
即使你做到了天衣無縫,還要考慮隊友有時會掉鏈子
寫完之後整個人都不好了
關於加密解密演算法參見:加解密Encryption& 雜湊Hash演算法----入門指引 - 面向工資編程 - 知乎專欄
◆著作權歸作者所有◆
商業轉載請聯絡作者獲得授權非商業轉載請註明出處。
作者大家可以看我的知乎專欄
連結http://zhuanlan.zhihu.com/auxten/20315482
這是一個系列的文章之四之五已經寫完了會陸陸續續搬到Linuxtone著急的同學可以看
網路編程(五):長串連&串連池的應用
網路編程(六):連接埠那些事兒
==================================
》》想要瞭解更多精彩內容歡迎關注》》
聯絡Reboot-有更多技術分享、交流請加群238757010
本文出自 “Reboot營運開發” 部落格,請務必保留此出處http://opsdev.blog.51cto.com/2180875/1727062
網路編程四:互連網中TCP Socket伺服器的實現過程需要考慮哪些安全問題