嘿開發社群! ?我很高興分享我的最新專案 - HackHound,這是一個開源 Web 安全測試工具,它將 Python 的強大功能與現代 React 前端相結合。在這篇文章中,我將向您介紹架構、主要功能以及我在開發過程中遇到的一些有趣的挑戰。
雖然有很多可用的安全測試工具,但我發現大多數:
HackHound 旨在透過提供簡化的視覺化 Web 安全測試方法來解決這些問題。
@app.post("/fuzz") async def fuzz(data: FuzzRequest): results = {} if actions.get("fuzz_directory"): results["directories"] = run_directory_fuzzing(url) if actions.get("fuzz_subdomain"): results["subdomains"] = run_subdomain_fuzzing(domain) # More fuzzing modes... return results
const FuzzingProgress = () => { const [progress, setProgress] = useState(0); useEffect(() => { socket.on('fuzz_progress', (data) => { setProgress(data.progress); }); }, []); return <ProgressBar value={progress} />; };
主要挑戰之一是管理長期運行的安全測試而不使客戶端超時。我使用以下組合解決了這個問題:
async def stream_results(test_generator): async for result in test_generator: yield { "status": "in_progress", "current_result": result }
為了確保負責任的測試,我實施了:
def validate_target(url: str) -> bool: # Check if target is in scope # Verify rate limits # Ensure safe mode compliance return is_valid
我用 Daytona 來標準化開發環境:
{ "name": "HackHound Dev Environment", "dockerFile": "Dockerfile", "forwardPorts": [5173, 5000], "postCreateCommand": "npm install && pip install -r requirements.txt" }
我正在規劃幾個令人興奮的功能:
該專案是開源的,可在 GitHub 上取得:HackHound Repository
開始:
@app.post("/fuzz") async def fuzz(data: FuzzRequest): results = {} if actions.get("fuzz_directory"): results["directories"] = run_directory_fuzzing(url) if actions.get("fuzz_subdomain"): results["subdomains"] = run_subdomain_fuzzing(domain) # More fuzzing modes... return results
歡迎貢獻!是否:
歡迎提出問題並提交 PR!
建立 HackHound 是將現代 Web 開發與安全測試結合的令人興奮的旅程。我很想聽聽您的想法和建議!
你有建造過類似的工具嗎?您面臨哪些挑戰?讓我們在下面的評論中討論吧! ?
追蹤我以了解更多安全與 Web 開發內容!
GitHub |推特 |領英
以上是HackHound:使用 React 和 Python 建立現代 Web 安全測試工具的詳細內容。更多資訊請關注PHP中文網其他相關文章!