Maison >développement back-end >Tutoriel Python >HackHound : créer un outil de test de sécurité Web moderne avec React et Python
Salut la communauté DEV ! ? Je suis ravi de partager mon dernier projet : HackHound, un outil de test de sécurité Web open source qui combine la puissance de Python avec une interface React moderne. Dans cet article, je vais vous présenter l'architecture, les fonctionnalités clés et quelques défis intéressants que j'ai rencontrés au cours du développement.
Bien qu'il existe de nombreux outils de test de sécurité disponibles, j'ai trouvé que la plupart d'entre eux :
HackHound vise à résoudre ces problèmes en fournissant une approche simplifiée et visuelle des tests de sécurité 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} />; };
L'un des principaux défis consistait à gérer des tests de sécurité de longue durée sans interrompre le client. J'ai résolu ce problème en utilisant une combinaison de :
async def stream_results(test_generator): async for result in test_generator: yield { "status": "in_progress", "current_result": result }
Pour garantir des tests responsables, j'ai mis en place :
def validate_target(url: str) -> bool: # Check if target is in scope # Verify rate limits # Ensure safe mode compliance return is_valid
J'ai utilisé Daytona pour standardiser l'environnement de développement :
{ "name": "HackHound Dev Environment", "dockerFile": "Dockerfile", "forwardPorts": [5173, 5000], "postCreateCommand": "npm install && pip install -r requirements.txt" }
Je prévois plusieurs fonctionnalités intéressantes :
Le projet est open source et disponible sur GitHub : HackHound Repository
Pour commencer :
@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
Les contributions sont les bienvenues ! Que ce soit :
N'hésitez pas à ouvrir des numéros et à soumettre des PR !
Construire HackHound a été un voyage passionnant en combinant le développement Web moderne avec les tests de sécurité. J'aimerais entendre vos pensées et suggestions !
Avez-vous construit des outils similaires ? À quels défis avez-vous été confronté ? Discutons-en dans les commentaires ci-dessous ! ?
Suivez-moi pour plus de contenu sur la sécurité et le développement Web !
GitHub | Twitter | LinkedIn
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!