使用360代碼衛士是一種什麼體驗?

官網:代碼衛士


檢測到您的代碼有xxx個bug,請使用一鍵修復

修復完成,您的代碼非常完美,已自動分享到雲端


我正嘗試,不過都過去快 2 個小時了還沒檢測完。完成後沒被嚇死一定會來補充的。

----

真是一個漫長的等待,最後的報告也沒告訴我他分析了多久,總之在睡覺前看的時候還沒結束,鐵定的超過 8 小時。用來測試的項目是 HongsCORE ,結果嘛,嚇了個半死,幾乎每個程序都有數個問題。活著真好,還能刷知乎。說什麼好呢,首先得感謝 360,感謝代碼衛士…… 下面要進正題,先得服軟,不然可能被撕。

哎喲喂,好歹給了我一顆星呢。2 千多個隱患,每 10 行代碼我就犯個錯,基本上他就認為這是個垃圾了。感謝您捏著鼻子為我查完。

缺陷分布很廣呀,這個輸入校驗嘛,就不勞煩數字大人操心了,我人為(或叫制度吧)將數據處理分為內部和外部,我的內部指我的資源數據(xml、properties),會刻意減少不太必要的校驗代碼,而外部數據有 Verify 承擔護航任務,另在最終入庫時通過 PreparedStatement 來避免 SQL 注入。也就是說,在中間過程中,我自認是安全的。

跨站嘛,也就憑我有個方法里是直接 out.write 一個參數來推斷我沒做輸出檢查,可是這個基礎方法是被其他方法調用的,數據交換是 JSON 格式,在另個方法里將 map 轉換為 json 串然後調這個方法輸出。這有點武斷了吧。

日誌偽造,好嘛,跟上面跨站攻擊類似,我就封裝了個 LoggerFactory.getLogger(name) 他就認為我可能會存在 getLogger(getParamerter("xxx")) 這種調用了。這也太敏感了,一碰就高潮呀。

不良實現里就更有意思了,本就是給命令行用的維護程序入口,裡面有 System.exit 又高潮了,我靠,我就是要檢查到錯誤然後 exit 不同的代號來表示哪類錯誤呀,您倒是告訴我個不敏感的替代方法嘛。

代碼風格上,有些說資源沒釋放的,我每個 Action 有管理器,內部不釋放會在操作完成自動釋放。在用到 commons-fileupload 的 Streams.copy() 時,報資源未釋放,但此方法的第三個參數為 true 時會在 copy 內釋放,參見 Streams (Apache Commons FileUpload 1.4-SNAPSHOT API)-。用 "".equals() 地方都被提醒「會降低系統性能」,這個可以改用 length(),isEmpty() 之類,還好。

然後還提到上傳時未限定文件最大值可能導致 DOS 攻擊,而我是把單個文件最大限制和全部文件最大限制從 properties 文件讀入再設置,使用的 Apache 的 commons-fileupload,他推薦的檢查方法與我使用的不同,這我得再去查查 API。

----

總的來說作為工具也不錯,比我的 NetBeans 敏感得多,有些警告我都是在 IDE 設置里關掉的。缺點嘛,是不是過於敏感了?我覺得給個缺陷分級比較好,哪些是非常嚴重的有明顯證據證明的,哪些是建議的、預感的用不好要出問題的。資源釋放,這個不錯,再人工查一下以免遺漏。

不說了,檢查代碼去了。

----

如果您不是裸奔,平時使用 IDE,編寫期間基本上就會給出警告、提示。這東西太慢了。


您的bug率超過了98%的碼農

您的速度打敗了全國99%的碼農


按照一貫尿性,我很擔憂代碼本身的安全


360衛士把我初中的vb代碼都當病毒刪掉了。你指的是這個么


建議用用codepecker,絕對不能再出現等8個鐘頭的事情。以下羅列了部分功能,有興趣的可以試試這個網址:http://www.cloudcp.cn。

CodePecker軟體的安全漏洞分析部分是基於市場領先的缺陷檢測能力,從已有的缺陷檢測功能分離出來單獨的安全漏洞檢測模塊。能夠檢測到的安全漏洞類型有7大類28小類,比較全面的覆蓋了常見的安全漏洞類型,如表所示:

CodePecker檢測缺陷類型


安全缺陷分類

安全缺陷類別細化

跨站腳本問題(XSS)

存儲型跨站腳本

反射型跨站腳本

數據注入問題

不可信數據存入可信存儲

數據注入

SQL注入

SQL查詢注入

LDAP過濾被污染

未驗證用戶輸入問題

郵件操縱

HTTP響應分割

日誌操縱

數據污染

數據污染進入本地代碼

進程和路徑注入問題

命令注入

路徑執行注入

環境變數注入

文件名操縱

路徑操縱

臨時文件路徑操縱

拒絕服務問題

整數溢出

數組索引拒絕服務

數組長度拒絕服務

臨時文件未及時刪除

弱加密問題

硬編碼密碼

空密碼被使用

弱密碼被使用

不安全的隨機函數

信息泄露問題

敏感信息泄露

文件名泄露


代碼缺陷類型定製

針對Java語言的檢測,CodePecker提供一百多種缺陷檢測類型,同時對外提供了可選擇缺陷檢測類型配置操作(高級檢測),用戶可以根據安全需求,有針對性的選擇缺陷檢測類型;同時CodePecker也提供了多種默認缺陷檢測類型(普通檢測),涵蓋了常見的缺陷種類。

圖形化結果展示和缺陷定位追蹤管理

Codepecker界面友好,操作簡單,可根據業務需求來配置用戶界面。檢測完成後,可根據檢測結果生成可視化缺陷展示圖,從多個維度展示缺陷分布。


我一直記得好好的把工程里的一個dll文件給我刪了。哪個工程又不是第一天在電腦上。
我也記得,代碼寫好了編譯鏈接運行出錯,原因是360把代碼刪了。


首先,這個問題應該是一個廣告,但,作為程序媛的我,還是很認真的了解了一番。

題主所說的不知道是不是這個網站:代碼衛士

代碼衛士為每一位開發者提供免費的源代碼缺陷檢測服務,和您一起打造更安全、更有生命力的源代碼


個人認為理想還是挺好的,但最終的技術提升還是要靠自己。


沒用過,我猜應該很好用,我周圍用過的人都說「用了就再也回不去了」


推薦閱讀:

如何評價 360 宣布永久關閉水滴直播平台?
360推出搜索推廣廣告了,你怎麼看?
疑似「3Q大戰」第二季,大家對此有什麼看法呢?
如何評價 360 殺毒軟體在反病毒機構評比中作弊並被取消認證?
為什麼360wifi會影響校園網穩定?

TAG:奇虎360 | 代碼 | 代碼管理 | 代碼質量 | 缺陷跟蹤 |