Rumah >pembangunan bahagian belakang >Tutorial Python >HackHound: Membina Alat Pengujian Keselamatan Web Moden dengan React dan Python
Hai komuniti DEV! ? Saya teruja untuk berkongsi projek terbaharu saya - HackHound, alat ujian keselamatan web sumber terbuka yang menggabungkan kuasa Python dengan bahagian hadapan React moden. Dalam siaran ini, saya akan membimbing anda melalui seni bina, ciri utama dan beberapa cabaran menarik yang saya hadapi semasa pembangunan.
Walaupun terdapat banyak alat ujian keselamatan yang tersedia, saya mendapati bahawa kebanyakan sama ada:
HackHound bertujuan untuk menyelesaikan masalah ini dengan menyediakan pendekatan visual yang diperkemas untuk ujian keselamatan 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} />; };
Salah satu cabaran utama ialah mengurus ujian keselamatan yang telah lama dijalankan tanpa menjejas masa pelanggan. Saya menyelesaikannya menggunakan gabungan:
async def stream_results(test_generator): async for result in test_generator: yield { "status": "in_progress", "current_result": result }
Untuk memastikan ujian yang bertanggungjawab, saya melaksanakan:
def validate_target(url: str) -> bool: # Check if target is in scope # Verify rate limits # Ensure safe mode compliance return is_valid
Saya menggunakan Daytona untuk menyeragamkan persekitaran pembangunan:
{ "name": "HackHound Dev Environment", "dockerFile": "Dockerfile", "forwardPorts": [5173, 5000], "postCreateCommand": "npm install && pip install -r requirements.txt" }
Saya merancang beberapa ciri menarik:
Projek ini adalah sumber terbuka dan tersedia di GitHub: HackHound Repository
Untuk bermula:
@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
Sumbangan dialu-alukan! Sama ada:
Jangan ragu untuk membuka isu dan menyerahkan PR!
Membina HackHound telah menjadi satu perjalanan yang menarik dalam menggabungkan pembangunan web moden dengan ujian keselamatan. Saya ingin mendengar pendapat dan cadangan anda!
Adakah anda membina alatan yang serupa? Apakah cabaran yang anda hadapi? Jom bincang dalam komen di bawah! ?
Ikuti saya untuk mendapatkan lebih banyak kandungan keselamatan dan pembangunan web!
GitHub | Twitter | LinkedIn
Atas ialah kandungan terperinci HackHound: Membina Alat Pengujian Keselamatan Web Moden dengan React dan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!