在網上看了一篇文章《零基礎如何學習 Web 安全?》,雖然不少東西的都不是很懂,感受挺好的copy過來,慢慢消化:html
文章地址:https://www.zhihu.com/question/21606800/answer/22268855前端
由於正好Web安全是我擅長的,你說的是0基礎,我總結下個人一些見解吧,針對0基礎的。nginx
一. 首先你得了解Web數據庫
Web分爲好幾層,一圖勝千言:
事實是這樣的:若是你不瞭解這些研究對象是不可能搞好安全研究的。
這樣看來,Web有八層(若是把瀏覽器也算進去,就九層啦,九陽神功……)!!!每層都有幾十種主流組件!!!這該怎麼辦?
別急,一法通則萬法通,這是橫向的層,縱向就是數據流啦!搞定好數據流:從橫向的層,從上到下→從下到上,認真看看這些數據在每一個層是怎麼個處理的。編程
數據流中,有個關鍵的是HTTP協議,從上到下→從下到上的頭尾兩端(即請求響應),搞通!難嗎?《HTTP權威指南》720頁!!!坑爹,好難!!!後端
怎麼辦?瀏覽器
橫向那麼複雜、縱向數據流的HTTP協議就720頁的書!!!放棄好了……安全
不,千萬別這樣。微信
給你點信心是:《HTTP權威指南》這本書我壓根沒看過。可是經過百度/Google一些入門的HTTP協議,我作了大概瞭解,而後Chrome瀏覽器F12實際看看「Network」標籤裏的HTTP請求響應,不出幾小時,就大概知道HTTP協議這玩意了。(這是快速研究的精髓啊)網絡
搞明白HTTP協議後,你就會明白安全術語的「輸入輸出」。
黑客經過輸入提交「特殊數據」,特殊數據在數據流的每一個層處理,若是某個層沒處理好,在輸出的時候,就會出現相應層的安全問題。
精彩舉例:1. 若是在操做系統層上沒處理好,好比Linux的Bash環境把「特殊數據」當作 指令執行時,就產生了 OS命令執行的安全問題,這段「特殊數據」可能長得以下這般:
; rm -rf /;
2. 若是在存儲層的數據庫中沒處理好,數據庫的SQL解析引擎把這個「特殊數據」當作 指令執行時,就產生 SQL注入這樣的安全問題,這段「特殊數據」可能長得以下這般:
' union select user, pwd, 1, 2, 3, 4 from users--
3. 若是在Web容器層如nginx中沒處理好,nginx把「特殊數據」當作 指令執行時,可能會產生遠程溢出、DoS等各類安全問題,這段「特殊數據」可能長得以下這般:
%c0.%c0./%c0.%c0./%c0.%c0./%c0.%c0./%20
4. 若是在Web開發框架或Web應用層中沒處理好,把「特殊數據」當作 指令執行時,可能會產生遠程命令執行的安全問題,這段「特殊數據」可能長得以下這般:
eval($_REQUEST['x']);
5. 若是在Web前端層中沒處理好,瀏覽器的JS引擎把「特殊數據」當作 指令執行時,可能會產生XSS跨站腳本的安全問題,這段「特殊數據」可能長得以下這般:
'"><script>alert(/cos is my hero./)</script>
...
你好像悟到了點什麼,我們繼續……
前面說了:若是你不瞭解這些研究對象是不可能搞好安全研究的。
拿我XSS來講,曾經有人問我,我回答的一個:在學習XSS前我應該學習什麼?你可與參考下。
假如我曾經要不是比較熟JavaScript、ActionScript、HTML/CSS的話,我估計我要研究好XSS是很困難的,我熟悉這些語言剛開始的出發點是想「創造」,我作了好些Flash動畫、作了好些網站、包括本身從後端到前端獨立實現過一個博客系統,爲了解決好前端在各瀏覽器的兼容問題(當時是IE6如日中天的時候),我啃了好幾本書,如《CSS網站佈局實錄》、《JavaScript DOM編程藝術》、《AJAX Hacks》、Flash從6版本以來到CS2的各種書籍我都多少看過,也實戰過,這一切都是在大學前三年搞定的。
大學第四年衝刺Web安全(長期以來有黑客情懷),大四下學期進入知道創宇(剛創業起步),而後到了如今,一晃在知道創宇六年。
說到這,很清晰啦:若是你不瞭解這些研究對象是不可能搞好安全研究的。
我們繼續:)
二. 黑客兵器譜
新人入門總在尋找好工具來提升效率,Web安全這塊我以前放出了個人「兵器譜」,在這:個人滲透利器(會不斷抽時間更新)。
工欲善其事必先利其器嘛,並且新人用了好兵器會更有成就感的。
切記:這些兵器,你不只要知其然還得知其因此然,別墮落了哦。
三. 明白「精於一而悟道」的道理
很少說,請看這個人回答:對於立志在網絡安全領域發展,應該如何系統學習安全知識?
四. 融入圈子
多結交些靠譜的黑客,搞搞基啦(不過別來真的,還有我好討厭扯淡/水得不得了的人),微博(含:Twitter)、QQ、微信、知乎、博客等善於跟進,不只學,也要分享,讓你們知道你的存在,更有利於交流與成長。
若是你對我有興趣,能夠看個人介紹:關於餘弦,我自認爲我本身靠譜(不,這不是浮誇,這是自信)。
關於「圈子」,我想說:別把本身侷限住。
最後,再次引用黑哥的一句話:「整就牛!」