- 代碼審計:企業級Web代碼安全架構
- 尹毅
- 2037字
- 2018-12-31 21:29:49
2.1 代碼編輯器
不管是做開發還是代碼審計,一款順手的代碼編輯器必不可少,代碼編輯器從輕量級到功能復雜強大的完備型,從免費到商業,都有很多款供我們選擇,我們可以根據需要選擇最適合的一款,常用的輕量級代碼編輯器有Nodepad++、Editplus、UltraEdit、PSPad、Vim、Gedit,等等,這些都是都是通用型文本編輯器,支持多種編程語言代碼高亮,優點是操作簡單,啟動快并且對文本操作很方便。常用的完備型PHP開發軟件也不少,這類編輯器主要的優點是功能全,對代碼調試、代碼提示等都支持得比較好,使我們在開發的時候bug更少,開發效率更高,常用的有Zend Studio、PhpStorm、PhpDesigner以及NetBeans等。
如果你用編輯器來做開發,并且代碼量比較大,建議你使用Zend Studio。如果用來做代碼審計或者少量代碼的開發,建議使用Nodepad++這類輕量級文本編輯器。
2.1.1 Notepad++
Notepad++是一套非常有特色的開源純文字編輯器(許可證:GPL),運行于Windows系統,有完整的中文接口及支持多國語言撰寫的功能(UTF8技術)。它的功能比Windows中的 Notepad(記事本)強大,除了可以用來編輯一般的純文字文件之外,也十分適合輕量開發的編輯器。Notepad++不僅有語法高亮顯示功能,也有語法折疊功能,并且支持宏以及擴充基本功能的外掛模組。
Notepad++可以安裝免費使用。支持如下語言的代碼高亮顯示:C、C++、Java、C#、XML、HTML、PHP、ASP、AutoIt、DOS批處理、CSS、ActionScript、Fortran、Gui4Cli、Haskell、JSP、Lisp、Lua、Matlab、NSIS、Objective-C、Pascal、Python、JavaScript等。
Notepad++擁有非常多強大的功能,特別是對文本操作非常靈活,這是筆者用得最多的一個文本編輯器,經常用來做一些有特定格式的文本批量替換、搜索、去重,等等。當然,它的強大不止如此。下面簡單介紹下它的核心功能:
1)內置支持多達27種語法高亮顯示(包括各種常見的源代碼、腳本,能夠很好地支持.nfo文件查看),還支持自定義語言。
2)可自動檢測文件類型,根據關鍵字顯示節點,節點可自由折疊/展開,還可顯示縮進引導線,代碼顯示得很有層次感。
3)可打開雙窗口,在分窗口中又可打開多個子窗口,顯示比例。
4)提供了一些有用工具,如鄰行互換位置、宏功能等。
5)可顯示選中的文本的字節數(而不是一般編輯器所顯示的字數,這在某些情況下很方便,比如軟件本地化)。
6)正則匹配字符串及批量替換,也支持批量文件操作。
7)強大的插件機制,擴展了編輯能力,如Zen Coding。
我們可以在官網Notepad++官網(notepad-plus-plus.org)下載最新版。主界面如圖2-1所示。

圖2-1
2.1.2 UltraEdit
UltraEdit(官網www.ultraedit.com)是一款功能強大的文本編輯器,不過它不是開源軟件,官網售價79.95美元,可以完美運行在Windows、Linux以及Mac系統上。這款編輯器不僅可以編輯文本,還支持十六進制查看以及編輯。可以直接在上面修改exe等文件,如圖2-2所示。

圖2-2
該編輯器支持將近二十種編程語言的語法高亮顯示,可同時編輯多個文件,支持打開超過4GB以上的文件,支持多種編碼轉換、排序去重。通過配置使用的腳本運行程序路徑,比如php.exe的路徑,就可以在使用UltraEdit編輯PHP代碼的時候直接執行代碼。再結合它的代碼補全功能,它也算得上一款不錯的代碼編輯器。要實現這個功能,首先在“高級→工具欄配置”中配置一些執行環境參數,在“命令行”的位置填入你的PHP文件路徑,在“菜單項目名稱”上寫你想填的菜單欄名稱,這里寫的是php. exe,在“工作目錄”中寫上你的PHP exe路徑,然后點擊“確定”按鈕,即可新建一個文件。在“高級”菜單里面點一下添加的php.exe(菜單欄名稱)即可執行代碼,如圖2-3所示。

圖2-3
另外一個比較好的功能是文件對比。這個功能也是經常會用到的,特別是我們在分析開源程序發布的官方補丁時,比如Phpcms某天發布了一個代碼執行漏洞修補補丁,那么我們就可以在官網下載補丁文件,然后利用UltraEdit的文件對比功能來快速找到修改了哪段代碼,修改的部分是不是成功修補了這個漏洞,或者未公開的漏洞。也可以根據這個方法快速找到漏洞在哪里。
這個功能可以在菜單欄“文件→比較文件”中找到,然后選擇要對比的兩個以上文件,勾選“比較選項”里面以忽略開頭的所有選項,點擊“比較”按鈕即可,如圖2-4所示。

圖2-4
如果比較的文件有不同的地方,它會用紅色標出,如圖2-5所示。

圖2-5
UltraEdit被公認為程序員必備的編輯器,是能夠滿足你一切編輯需要的編輯器。
2.1.3 Zend Studio
Zend Studio與PHP出自同一家公司,也可以說Zend Studio是PHP官方專門開發出來用來編寫PHP代碼的代碼編輯器。Zend Studio是目前用戶量最大的PHP開發工具,也是屢獲大獎的專業 PHP 集成開發環境,具備功能強大的專業編輯工具和調試工具,支持PHP語法高亮顯示,支持語法自動填充功能,支持書簽功能,支持語法自動縮排和代碼復制功能,內置一個強大的PHP代碼調試工具,支持本地和遠程兩種調試模式,支持多種高級調試功能,可以完美運行在目前主流的Windows、Linux以及Mac操作系統上。官網是http://www.zend.com/en/products/studio。
Zend Studio 10.6版本的界面截圖如圖2-6所示。

圖2-6
Zend Studio最令筆者最喜歡的功能是代碼提示功能,實際上,只要這個功能做得好的編輯器,筆者都非常喜歡,因為這非常人性化,可以讓我們不用去記那么多函數,等你經常用的編程語言超過了6種以上,你就會深有感觸。代碼提示功能如圖2-7所示。

圖2-7
另外Zend Studio在代碼調試方面也非常強大,支持多種調試模式,利用它的調試功能,可以讓我們非常快地發現bug位置,監控數據傳遞過程和函數運行情況,如圖2-8所示。

圖2-8
- RESTful Java Web Services Security
- 數據恢復方法及案例分析
- SASE原理、架構與實踐
- Wireshark 2 Quick Start Guide
- 走進新安全:讀懂網絡安全威脅、技術與新思想
- 數據安全與隱私計算(第3版)
- 安全防御入門手冊
- 情報驅動應急響應
- Cybersecurity Threats,Malware Trends,and Strategies
- 數字政府網絡安全合規性建設指南:密碼應用與數據安全
- Hands-On Artificial Intelligence for Cybersecurity
- 交換機·路由器·防火墻(第2版)
- 黑客攻防從入門到精通:實戰篇(第2版)
- 黑客攻防從入門到精通:絕招版(第2版)
- INSTANT Microsoft Forefront UAG Mobile Configuration Starter