【譯】Metasploit:社區(qū)貢獻指南



你好,世界!

非常感謝您對開發(fā) Metasploit 感興趣,因此,世界 -- 一個更美好的地方!

請問您是想要來報告 BUG 嗎?這里是我們的 Issue tracker
請盡可能詳細地描述您的問題; 包括重現(xiàn)步驟(如果有幫助,從控制臺輸出中剪切并粘貼)以及您期望發(fā)生的事情。

請問您是想要報告一個 Metasploit 自己本身的漏洞嗎?多么諷刺! 請查看 Rapid7 的漏洞披露政策,并使用我們的PGP密鑰將您的報告發(fā)送至 security@rapid7.com。

請問您是想要提供一些新功能,錯誤修復(fù)或新的 Metasploit 模塊嗎? 如果是這樣,那么就請繼續(xù)閱讀吧!

為 Metasploit 貢獻

您在 CONTRIBUTING.md 中看到的內(nèi)容是關(guān)于如何確保您的寶貴貢獻真正融入 Metasploit 主分支以及一些不該做的事情的一個列表。
如果你不關(guān)注這些規(guī)則,你的貢獻被關(guān)閉。 抱歉!
本文將會是一個簡短的列表。 本項目的 wiki 將會更詳盡,揭示了許多謎團。 如果您沒有閱讀其他內(nèi)容,請參閱標準 開發(fā)環(huán)境設(shè)置指南Metasploit 的常見編碼錯誤。

代碼方面的貢獻

  • 堅持遵守 Ruby 風(fēng)格指南
  • 根據(jù)您添加或修改的代碼,使 Rubocop 相對安靜。(譯者注:Rubocop 是 Ruby 的一個代碼檢查器)
  • 對于Git提交消息,遵循 50/72 規(guī)則
  • 請不要 在分支合并的時候使用默認消息,盡可能留下描述信息。
  • 將你的代碼在 BSD 3-clause, BSD 2-clause, 或者 MIT 開源許可證下發(fā)布
  • 創(chuàng)建一個主題分支(譯者注:topic branch)來處理,而不是直接在 master 分支上工作。 如果您沒有從 主題分支 發(fā)送 PR(譯者注:Pull Request),只要您更新自己的 master 分支,您的 PR 歷史將會丟失。 請參閱 https://github.com/rapid7/metasploit-framework/pull/8000 以了解其中的一個示例。

Pull Requests

  • 將您的 Pull Request 定位到主分支,而不是 staging,develop 或者 release 分支。
  • 指定一個描述性的標題來能使你的 Pull Request 被更容易地搜索到。
  • 包含 控制臺輸出 ,特別是對于在 msfconsole 中可見的效果。
  • 列出 verification steps 驗證步驟以便保證你的代碼是可被評測的。
  • 在您的 Pull Request 說明中引用相關(guān) issue (譯者注:如果你的 Pull Request 是為了專門解決某一個 Issue 中提出的問題或者修復(fù)某一個 Issue 中提出的 Bug的時候可以參考本條建議)。
  • 在你的 Pull Request 被落實(譯者注:landed,個人理解為合并了你的 Pull Request)后撰寫 release notes
  • 請不要 讓你的 Pull Request 的描述為空
  • 請不要 放棄你的 Pull Request, 快速的響應(yīng)可以幫助我們更快地落實(譯者注:land,個人理解為合并你的 Pull Request)你的代碼。

Pull requests PR#2940PR#3043 是一組很好的可以被追隨的例子。

新的模塊

  • 運行 tools/dev/msftidy.rb 來檢查并修復(fù)出現(xiàn)的任何錯誤或警告。
    (https://github.com/rapid7/metasploit-framework/blob/master/tools/dev/pre-commit-hook.rb).
  • 盡可能使用現(xiàn)有的模塊 mixin API(譯者注:關(guān)于 module mixin,請參考:https://www.tutorialspoint.com/ruby/ruby_modules.htm,在翻譯的時候譯者對 Ruby 還不是很熟,這句話可能翻譯的不是很準確,給出原文:Do use the many module mixin APIs.) 。我們歡迎您改進輪子,而不是重新造輪子。
  • 請不要 在一個單獨的 Pull Request 中包含超過一個的模塊(譯者注:module)
  • 包含關(guān)于如何設(shè)置易受攻擊的環(huán)境或軟件的說明。
  • 包含顯示示例運行的模塊文檔

腳本

  • Don't submit new scripts. Scripts are shipped as examples for automating local tasks, and anything "serious" can be done with post modules and local exploits.
  • 請不要 提交新的腳本 scripts, 腳本會作為自動化本地任務(wù)的示例發(fā)布,任何 “嚴重” 的事情都可以通過后期模塊(譯者注:post modules)和本地漏洞利用(譯者注:local exploit)來完成。

庫代碼(譯者注:Library Code)

  • 編寫 RSpec 測試用例,因為即使是 library 層的最小變化也可能導(dǎo)致崩潰。
  • 按照 更好的規(guī)格說明 ,就像規(guī)格指南的風(fēng)格一樣。
  • 編寫 YARD 文檔,這會讓人們更加容易地使用你的代碼。
  • 請不要 在一個 Pull Request 中修復(fù)多個問題,較小的修復(fù)會更加容易被驗證。

Bug 修復(fù)

  • 在驗證步驟(譯者注:verification steps)中包含重現(xiàn)步驟。
  • 在提交描述中包含指向任何相關(guān) Issues 的鏈接,格式為請參閱 See #1234。

Bug 報告

  • 將漏洞報告直接發(fā)送給 Rapid7 Software security@rapid7.com.
  • 為您的報告撰寫一個描述性的標題和較為詳細的描述信息
  • 包含重現(xiàn)的步驟、函數(shù)調(diào)用棧以及其他任何可能對我們修復(fù)您的 Bug 有幫助的信息。
  • 請不要 重復(fù)提交相同的報告,請在您提交一個新的報告之前先進行搜索確保沒有重復(fù)。

如果你還需要更多的指南或者有別的疑問,那么你可以在 Freenode IRC channel 和主要的開源開發(fā)者進行交流 或者 給我們的郵件列表 metasploit-hackers 發(fā)送郵件來咨詢。

最后,感謝 您花費一小段時間來閱讀這篇說明!你已經(jīng)領(lǐng)先于曲線,所以繼續(xù)保持!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,555評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,039評論 25 709
  • 原文地址:https://github.com/rapid7/metasploit-framework/wiki/...
    王一航閱讀 1,028評論 0 1
  • 外婆九十一歲了,滿口的牙齒被歲月侵蝕,只剩下為數(shù)不多的幾顆還在堅守崗位。滿臉的皺紋刻畫著歲月的風(fēng)霜。外婆沒有文化,...
    于小五閱讀 368評論 0 3
  • 成功起航
    愛心園閱讀 176評論 0 0

友情鏈接更多精彩內(nèi)容