Paiement protégéEn savoir plus
- Les retouches prévues par la formule sont gratuites.
- Sans réponse de votre part dans les 3 jours suivant la livraison, le travail est validé automatiquement.
L’argent est réservé au paiement et versé uniquement une fois le travail validé.

Exemple de résultat
Revue de code : script Python d'import de commandes pour une petite boutique en ligne
Ce que fait le code
- Lit
orders.csvissu de l'export de la boutique. - Pour chaque ligne de commande, retrouve le produit par sa référence (SKU) dans
stock.xlsxet soustrait la quantité. - Réécrit le stock mis à jour et consigne les totaux dans
import_log.txt.
La structure est claire et les fonctions bien nommées. La plupart des problèmes viennent de données qui n'ont pas la forme attendue.
Bugs et points faibles
| # | Ligne | Gravité | Problème |
|---|---|---|---|
| 1 | 48 | Élevée | Le même CSV peut être importé deux fois : aucun contrôle des numéros de commande déjà traités. C'est la cause la plus probable du stock négatif. |
| 2 | 72 | Élevée | int(row["qty"]) plante sur les valeurs vides ou « 2.0 » des commandes remboursées. |
| 3 | 95 | Moyenne | La recherche de SKU est sensible à la casse : « gt-101 » et « GT-101 » sont vus comme deux produits. |
| 4 | 130 | Moyenne | Le fichier est ouvert sans encoding="utf-8" : les noms accentués cassent sous Windows. |
| 5 | 201 | Faible | Un except: nu masque les vraies erreurs et rend le journal inutile. |
Fragments corrigés
Problème 1 : ignorer les commandes déjà importées
processed = load_processed_ids("processed_orders.txt")
for row in reader:
if row["order_id"] in processed:
continue
# ... logique existante ...
processed.add(row["order_id"])
save_processed_ids("processed_orders.txt", processed)
Pourquoi : chaque commande n'est appliquée qu'une fois, même si le script est relancé sur le même fichier.
Problème 2 : lire la quantité sans risque
raw = (row.get("qty") or "").strip()
try:
qty = int(float(raw))
except ValueError:
log.warning("Commande %s : quantité invalide %r, ignorée", row["order_id"], raw)
continue
Pourquoi : les lignes remboursées ou partielles sont ignorées avec une note claire au lieu de bloquer tout l'import.
Problème 3 : normaliser les SKU
sku = row["sku"].strip().upper()
Appliquez le même .strip().upper() lors de la construction du dictionnaire de stock.
Style et lisibilité
process()fait 90 lignes ; découpez-la enread_orders,apply_to_stock,write_report.- Remplacez les numéros de colonne en dur (
row[7]) par les noms d'en-tête.
Testez chaque correction sur une copie de vos fichiers : nous avons relu le code sans l'exécuter.
Client : gérante d'une boutique de thé qui a écrit un script Python de 310 lignes pour importer les commandes d'un export CSV dans le tableau de stock Problème signalé : « Parfois le stock devient négatif, et le script plante sur certains fichiers. »
Le client et tous les détails sont fictifs.
À propos de ce service
Beaucoup de failles de sécurité se voient directement dans le code : des commandes SQL ou shell construites à partir des saisies de l'utilisateur, une sortie affichée sans échappement, des mots de passe stockés avec un hachage rapide, des contrôles qui vérifient qui est l'utilisateur mais pas ce à quoi il a droit, et des clés écrites dans le code source. Nous lisons votre code avec l'OWASP Top 10 comme liste de contrôle, expliquons chaque faille et comment elle pourrait être exploitée, et les classons par niveau de risque. Chaque constat est accompagné d'un fragment corrigé utilisant le modèle sûr propre à votre langage.
Ce qui est inclus
- Ce que vous recevezUne revue écrite sur la page de la commande : les failles classées par risque avec une explication de chacune, et des fragments corrigés utilisant des modèles sûrs. La formule Premium ajoute une courte liste de contrôle de durcissement pour le reste du projet.
- InjectionInjection SQL, shell et de template
- Échappement de la sortieRisques de cross-site scripting
- Contrôles d'accèsQui peut voir et modifier quoi
- Mots de passe et secretsHachage et clés hors du code
- Constats classésCorriger le plus grave en premier
Comment ça marche
- 1BriefVous collez les parties sensibles du code
- 2LectureNous le confrontons à l'OWASP Top 10
- 3AnalyseVous recevez les constats classés et les corrections
Ce dont nous avons besoin
Le code qui gère les saisies, les connexions, les fichiers ou les paiements collé sous forme de texte ou en captures d'écran, avec les secrets remplacés par des valeurs fictives, le langage et le framework, et qui utilise l'application.
Nous vous demanderons :
- Quel langage et quel framework ?
- Quelles parties gèrent les saisies, les connexions ou les paiements ?
- Qui utilise l'application ?
- Un incident ou un avertissement précis a-t-il motivé cette revue ?
Comparer les formules
| Formules | EssentielCode jusqu'à 100 lignes14 € | StandardCode jusqu'à 400 lignes32 € | PremiumJusqu'à 1 000 lignes avec une liste de contrôle de durcissement62 € |
|---|---|---|---|
| Délai | 1 jour | 2 jours | 3 jours |
| Retouches | 1 | 2 | 3 |
| Lignes de code | jusqu'à 100 | jusqu'à 400 | jusqu'à 1 000 |
| Fragments corrigés | Oui | Oui | Oui |
| Liste de contrôle de durcissement | Non | Non | Oui |
| Commander Essentiel | Commander Standard | Commander Premium |
Paiement protégé
Vous payez à la commande, mais l’argent n’est versé que pour un travail validé.
- Prix fixeLe prix de la formule ne change pas après le paiement.
- L’argent est réservéAu paiement, le montant est seulement réservé. Il n’est versé à Dleex qu’une fois le travail validé.
- Vérifié avant livraisonChaque résultat passe un contrôle qualité avant de vous parvenir, et vous le voyez sur la page de la commande avant de le valider.
- Retouches gratuitesDemandez des retouches dans le cadre de votre brief autant de fois que la formule le permet.
- Validation au bout de 3 joursSi, dans les 3 jours suivant la livraison, vous n’avez ni validé le travail ni demandé de retouches, il est validé automatiquement. Si vous écrivez dans le chat de la commande après la livraison, la commande est mise en attente ; après notre réponse, nous pourrons relancer le délai de 3 jours et vous le signalerons dans le chat.
- Travail refait ou remboursement intégralSi le résultat ne correspond pas à votre brief et que les retouches n’y ont rien changé, ou si le travail prend plus du double du délai prévu, écrivez dans le chat de la commande : nous referons le travail ou vous rembourserons intégralement.
Questions et réponses
S'agit-il d'un test d'intrusion ou d'un certificat de sécurité ?
Non. Nous lisons le code que vous envoyez sans attaquer ni scanner votre système en ligne : cela ne remplace donc pas un audit formel lorsqu'il est exigé.
Dois-je envoyer des mots de passe ou des clés ?
Jamais. Remplacez-les par des valeurs fictives ; si une vraie clé figurait déjà dans le code, renouvelez-la.
Exécutez-vous mon code ?
Non. Nous le lisons attentivement et analysons son comportement, mais nous ne l'exécutons pas : testez donc chaque correction proposée dans votre propre projet.