標籤:

學習 Web 安全之前一定要精通 Web 開發嗎?

我一直對網路安全有興趣,看完了stevens的unix網路編程和環境高級編程,想涉及一些有關web安全方面的知識,但在這之前我一定要先精通html/javascript/ajax/php/asp/sql嗎?是不是要先成為一名合格的開發者?還是說只需要大致了解一下就好?不勝感激,臨表涕零~~~~~


「Web 開發」與「Web 安全」這兩大技能根本沒先後關係,開發往往是創造思維,安全卻更偏向於破壞思維,這有如 DNA 雙鏈糾纏前進,在創造中搞破壞,在破壞中搞創造,終極目的都是創造,到這個層面,就意味著這兩大技能都深熟於心了。


主要是增加Web基礎的學習,再了解一下漏洞原理

  1. 開發
    1. 書籍
      1. 《JavaScript DOM編程藝術》
      2. PHP 官方手冊
      3. 可以從自己熟悉的開發語言的 Web 框架入手,資料的話建議看文檔,Web 開發技術變化很快。比如 Pyhton 的 Django,NodeJS 的

        express 和 koa,Java 就更多了。
    2. 實踐
      1. 寫一個 Blog
        1. 用戶系統
        2. 內容系統
  2. 安全
    1. 書籍
      1. 《XSS 跨站腳本攻擊剖析與防禦》
      2. 《SQL 注入攻擊與防禦》
      3. 《Web安全深度剖析》
    2. 實踐
      1. XSS 實例模擬,了解 XSS 實際挖掘中的一些要害 http://xsst.sinaapp.com/xss
      2. MySql注入科普 MySql注入科普 - 瞌睡龍
  3. 工具
    1. Namp
    2. Burpsuite
      1. Proxy
      2. Spider
      3. Scanner
      4. Intruder
      5. 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開發。

推薦:

  1. 《Web前端黑客技術揭秘》

  2. 《白帽子講Web安全》

  3. 知道創宇研發技能表v2.2


必須要啊,,這些腳本語言在前段需要的比較多吧。


肯定要看懂一些 基本的腳本還是語言


我覺得題主如果想研究web安全的話,可以從sql注入和xss開始。研究sql注入,得知道資料庫吧,研究xss得知道前端吧,在學習經典類型的同時去學習其他課程。


js最好懂,不然搞個poc都好費勁


推薦閱讀:

WEB安全,應該從哪種語言開始入門?
在360的小動作逐漸被曝光、證實後,360的用戶應當如何面對?
如何評價紀錄片《第四公民》?
由於子網掩碼,相同的IP可以指代不同的計算機(見問題說明),那麼傳輸數據是如何正確送達到目的地的呢?
新聞經常說有打著修改學生成績的幌子來騙錢,各位有沒有親身經歷的真實的案例?

TAG:網路安全 |