學習 Web 安全之前一定要精通 Web 開發嗎?
我一直對網路安全有興趣,看完了stevens的unix網路編程和環境高級編程,想涉及一些有關web安全方面的知識,但在這之前我一定要先精通html/javascript/ajax/php/asp/sql嗎?是不是要先成為一名合格的開發者?還是說只需要大致了解一下就好?不勝感激,臨表涕零~~~~~
「Web 開發」與「Web 安全」這兩大技能根本沒先後關係,開發往往是創造思維,安全卻更偏向於破壞思維,這有如 DNA 雙鏈糾纏前進,在創造中搞破壞,在破壞中搞創造,終極目的都是創造,到這個層面,就意味著這兩大技能都深熟於心了。
主要是增加Web基礎的學習,再了解一下漏洞原理
- 開發
- 書籍
- 《JavaScript DOM編程藝術》
- PHP 官方手冊
- 可以從自己熟悉的開發語言的 Web 框架入手,資料的話建議看文檔,Web 開發技術變化很快。比如 Pyhton 的 Django,NodeJS 的 express 和 koa,Java 就更多了。
- 實踐
- 寫一個 Blog
- 用戶系統
- 內容系統
- 安全
- 書籍
- 《XSS 跨站腳本攻擊剖析與防禦》
- 《SQL 注入攻擊與防禦》
- 《Web安全深度剖析》
- 實踐
- XSS 實例模擬,了解 XSS 實際挖掘中的一些要害 http://xsst.sinaapp.com/xss
- MySql注入科普 MySql注入科普 - 瞌睡龍
- 工具
- Namp
- Burpsuite
- Proxy
- Spider
- Scanner
- Intruder
- Repeater
合適的工具可以讓你事半功倍,挑一個好看的工具主題也是。但自學階段應該儘可能少的把精力放在資源和工具的收集上,把更多的時間用來探索一個好的工具上是非常有必要的。不管是技術還是工具都得自己試試,合適的是試出來的,工具用能解決問題的,自己喜歡的就好。
另外很多人覺得自己只會用工具不入流,但其實很多工具真正了解他們的人並不多,比如我們最常使用的 AWVS、Burpsuite。
- 筆記軟體:Onenote
- 思維腦圖:
- MacOS:Mindnode
- Windows:XMind
- 文檔工具,可以直接查看搜索各種開發語言、框架的官方文檔,都給整理好啦:
- (收費)Windows: Velocity https://velocity.silverlakesoftware.com/
- (收費)MacOS: Dash https://kapeli.com/dash
- 在線版: http://devdocs.io/
- 文本編輯:
- Sublime http://www.sublimetext.com/
- 插件安裝工具: https://packagecontrol.io/
- 代碼顏色風格: http://colorsublime.com/
- 編輯器風格: https://scotch.io/bar-talk/best-sublime-text-3-themes-of-2015-and-2016
- 穩定、快、插件多、風格也多,但收費。
- Visual studio code https://code.visualstudio.com/
- 簡單易用免費,不喜歡折騰就用這個
- IDE: Jetbrains 的各個語言的 IDE 都是精品 https://www.jetbrains.com/
- Web測試環境搭建
- Windows
- PHPStudy
- MacOS
- CodeRunner
- Chrome 擴展
- SwitchySharp 代理切換必備 https://chrome.google.com/webstore/detail/dpplabbmogkhghncfbfdeeokoefdjegm
- Onenote 剪輯插件,用與收藏好的網頁信息同步到 Onenote 賬戶上
https://chrome.google.com/webstore/detail/onenote-web-clipper/gojbdfnpnhogfdgjbigejoaolejmgdhk
- DevTools Author,用來設置開發者工具的界面及代碼風格 https://chrome.google.com/webstore/detail/devtools-author/egfhcfdfnajldliefpdoaojgahefjhhi 使用前需要開啟實驗功能。打開 chrome://flags/ ,啟用 Enable Developer Tools experiments 並重啟瀏覽器。然後在 DevTools 的設置中就多了一個 Experiments 設置面板。
- Octotree,裝上後在 GitHub 上瀏覽代碼倉時可以直接使用 Tree 來查看 https://chrome.google.com/webstore/detail/octotree/bkhaagjahfmjljalopjnoealnfndnagc
- EditThisCookie,用來修改 Cookies 很方便 https://chrome.google.com/webstore/detail/editthiscookie/fngmhnnpilhplaeedifhccceomclgfbg
- User-Agent Switcher,用於切換UA,比如需要在PC上使用網站的移動版時 https://chrome.google.com/webstore/detail/user-agent-switcher-for-c/djflhoibgkdhkhhcedjiklpkjnoahfmg
- 終端
- Windows
- Cmder, http://cmder.net
- Windows 下非常好用的一個終端
- 配合 Bash on Windows 效果更佳
- 如何開啟 http://blog.csdn.net/yunwei888/article/details/51161471
- MacOS
- Black-screen 新一代終端 https://github.com/shockone/black-screen
- brew cask install black-screen
- Linux
- Fish、ZSH
- 安全工具
- Burpsuite,HTTP 抓包改包工具,通常用於測試「用戶賬戶穿越」,「改金額一元購物」等漏洞
- 下載 http://www.freebuf.com/sectool/99127.html
- 手把手教學 https://github.com/xl7dev/BurpSuite/raw/master/BurpSuite.doc
- Sqlmap,SQL注入最厲害的工具,找到一個SQL注入漏洞後就用這個注數據
- 官網 http://sqlmap.org/
- 上手教程 SQLMAP 實例COOKBOOK - lxj616
- 進階的使用 SQLMAP進階使用 - MayIKissYou
- Nmap,最經典最強大的網路主機埠掃描
- 安裝 https://nmap.org/book/install.html
- 上手教程 NMAP 基礎教程 - he1renyagao
- 進階的使用 Nmap速查手冊 - 我是壯丁
- AWVS,很厲害的 web 掃描器,簡單易用
- 下載 http://www.freebuf.com/sectool/71091.html
- 使用教程 http://www.freebuf.com/sectool/100713.html
首先說html和js一定要懂,而且要熟練,這是最基本的,不然web前端安全做不了,xss和csrf寫不出來,同源策略和各種垮域也很難理解。至於3p腳本么,明白一種你就算是入門了,所謂一通百通,學好一種以後再學其它的就容易很多。例如asp和php就有很多共同點。如果你想搞某種語言的代碼審計,那就去儘可能的精通它,要比程序員還要精通,例如黑哥的php以及空虛浪子的java,那都是逆天的本事。
至於資料庫么,mysql,mssql,access,oracle是最基本的,其它的多多益善。前期遇到注射一定嘗試要手工注射,對理解sql很有幫助,依賴於工具是很被動的。
最後勸題主一句,放著那麼多好工作不做為什麼要做web安全,我做了半輩子web安全在別人眼裡還是個日站的,如果再給我一次機會,四年前我寧願去考個公務員當個老師什麼的。企業級的Web開發項目一般是按模塊劃分到團隊或者個人,真正優秀的Web開發者逐漸會深挖需求及業務或者架構方面的知識。
一個Web安全研究人員不一定熟悉Web開發的方方面面,但是後期至少有一門拿得出手的Web編程語言,編程語言跟你的研究方向有關,看是服務端還是客戶端。還有一些基本的安全測評手法也是需要了解的。後期參與到企業級的項目裡面有可能是為安全產品提供技術支持,提供一些防禦規則或者提供建設性意見。或者參與到開發團隊為他們提供代碼安全審計以及安全開發規範等。
Web安全研究--方法論--解決Web項目或者產品需求這個不用的,先從感興趣的學,注入跨站等,然後在那慢慢學其他語言!
至少需要知道web實現的原理,jsp/php/java/js等語言不說精通,至少要能看懂,不然像我一樣連 @餘弦的書都看不懂~~努力學習中..
開始階段,需要懂一點基本的就行,找到的漏洞大多都是比較古老的網站,但是隨著道行的加深和現在安全意識的加強,你不會開發,那麼你始終無法從一個開發者角度來思考問題,也不會知道什麼環節出什麼問題,再比如說你現在接觸的漏洞,或許你掌握了,但是你不一定知道原理,代碼怎麼寫的,怎麼修復。
不用吧。
找一些Web安全相關的工具先搞起來,在學的過程中肯定會遇到一些問題,也會接觸到一些Web相關的代碼。你有編程經驗,有的代碼完全可以看懂,如果不同通過問題去驅動著學習也是可以的,慢慢深入的時候再去系統的學習與Web安全相關的開發知識也可以吧。
不需要,我建議可以直接學,遇到不會的再補基礎知識,如果先學開發,沒有人帶容易過頭,周期太長
當盤古劈開蛋的那一剎那,Web開發誕生,Web安全就一同出現了,他們出生時手握各種神器,Javascript,Python,Php等等,他們有著相同的基因,由於屬性不一樣就開始了各自的練級打怪刷裝備的征程。他們正遊走在混沌的世界,完成 著自己的使命。學習Web安全肯定要會流行的各種神器(Javascript,Python,Php,English等等),因為你修成正果後要精通Web安全,走跟Web開發不一樣的道路,不時會有Web開發殺入Web安全,偶爾會遇到醫生,化學生等高手殺入,所以你肯定要應付得了Web開發。至於要不要精通Web開發的話。。額。當然要精通應付Web開發。推薦:
- 《Web前端黑客技術揭秘》
- 《白帽子講Web安全》
- 知道創宇研發技能表v2.2
必須要啊,,這些腳本語言在前段需要的比較多吧。
肯定要看懂一些 基本的腳本還是語言
我覺得題主如果想研究web安全的話,可以從sql注入和xss開始。研究sql注入,得知道資料庫吧,研究xss得知道前端吧,在學習經典類型的同時去學習其他課程。
js最好懂,不然搞個poc都好費勁
推薦閱讀:
※WEB安全,應該從哪種語言開始入門?
※在360的小動作逐漸被曝光、證實後,360的用戶應當如何面對?
※如何評價紀錄片《第四公民》?
※由於子網掩碼,相同的IP可以指代不同的計算機(見問題說明),那麼傳輸數據是如何正確送達到目的地的呢?
※新聞經常說有打著修改學生成績的幌子來騙錢,各位有沒有親身經歷的真實的案例?
TAG:網路安全 |