Revisione del codice orientata alla sicurezzaFormazione in programmazione

Revisione del codice concentrata sui punti deboli di sicurezza

Consegna da 1 giornoRevisioni incluseControllo di qualità
Pacchetti
Pagamento protettoDettagli
  • Le revisioni previste dal pacchetto sono gratuite.
  • Se non risponde entro 3 giorni dalla consegna, il lavoro viene accettato automaticamente.
Ordina · 32 €

Il denaro viene riservato al momento del pagamento e sbloccato solo quando accetta il lavoro.

Revisione del codice concentrata sui punti deboli di sicurezza

Esempio di risultato

Esempio per il pacchetto Standard

Revisione del codice: script Python di importazione ordini per un piccolo negozio online

Cosa fa il codice

  1. Legge orders.csv dall'export del negozio.
  2. Per ogni riga d'ordine cerca il prodotto per SKU in stock.xlsx e sottrae la quantità.
  3. Salva le giacenze aggiornate e registra i totali in import_log.txt.

La struttura è chiara e le funzioni hanno nomi ben scelti. Quasi tutti i problemi riguardano dati in ingresso diversi da quelli che lo script si aspetta.

Bug e punti deboli

#RigaGravitàProblema
148AltaLo stesso CSV può essere importato due volte: non c'è alcun controllo sugli ID ordine già elaborati. È la causa più probabile delle giacenze negative.
272Altaint(row["qty"]) va in errore con valori vuoti o "2.0" degli ordini rimborsati.
395MediaLa ricerca per SKU distingue maiuscole e minuscole: "gt-101" e "GT-101" risultano prodotti diversi.
4130MediaIl file viene aperto senza encoding="utf-8", quindi su Windows i nomi con lettere accentate si rompono.
5201BassaUn except: generico nasconde gli errori reali e rende inutile il log.

Frammenti corretti

Problema 1: saltare gli ordini già importati

processed = load_processed_ids("processed_orders.txt")
for row in reader:
    if row["order_id"] in processed:
        continue
    # ... logica esistente ...
    processed.add(row["order_id"])
save_processed_ids("processed_orders.txt", processed)

Perché: ogni ordine viene applicato una sola volta, anche se rilanciate lo script sullo stesso file.

Problema 2: leggere la quantità in modo sicuro

raw = (row.get("qty") or "").strip()
try:
    qty = int(float(raw))
except ValueError:
    log.warning("Ordine %s: quantità non valida %r, saltato", row["order_id"], raw)
    continue

Perché: le righe rimborsate o parziali vengono saltate con una nota chiara, invece di fermare tutta l'importazione.

Problema 3: normalizzare gli SKU

sku = row["sku"].strip().upper()

Applicate lo stesso .strip().upper() quando costruite il dizionario delle giacenze.

Stile e leggibilità

  • process() è lunga 90 righe: dividetela in read_orders, apply_to_stock, write_report.
  • Sostituite i numeri di colonna "magici" (row[7]) con i nomi delle intestazioni.

Testate ogni correzione su una copia dei vostri file: abbiamo letto il codice, ma non l'abbiamo eseguito.

Cliente: titolare di un negozio di tè che ha scritto uno script Python di 310 righe per importare gli ordini da un export CSV nel foglio delle giacenze Problema segnalato: "A volte le giacenze vanno in negativo, e con alcuni file lo script si blocca."

Il cliente e tutti i dati sono inventati.

Informazioni sul servizio

Molte falle di sicurezza si vedono direttamente nel codice: comandi SQL o di shell costruiti con l'input dell'utente, output stampato senza escape, password salvate con un hash veloce, controlli che verificano chi è l'utente ma non a cosa può accedere e chiavi scritte nel sorgente. Leggiamo il suo codice usando l'OWASP Top 10 come checklist, spieghiamo ogni punto debole e come potrebbe essere sfruttato e li ordiniamo per rischio. Ogni rilievo è accompagnato da un frammento corretto con lo schema sicuro per il suo linguaggio.

Cosa è incluso

  • Cosa riceveUna revisione scritta nella pagina dell'ordine: i punti deboli ordinati per rischio con una spiegazione di ciascuno e frammenti corretti con schemi sicuri. Il Premium aggiunge una breve checklist di hardening per il resto del progetto.
  • InjectionSQL, shell e template injection
  • Escape dell'outputRischi di cross-site scripting
  • Controlli di accessoChi può vedere e modificare cosa
  • Password e segretiHashing e chiavi fuori dal codice
  • Rilievi ordinatiPrima si corregge il peggio

Come funziona

  1. 1
    BriefLei incolla le parti sensibili del codice
  2. 2
    LetturaLo confrontiamo con l'OWASP Top 10
  3. 3
    RevisioneRiceve rilievi ordinati e correzioni

Cosa ci serve da lei

Il codice che gestisce input, login, file o pagamenti incollato come testo o in screenshot con i segreti sostituiti da segnaposto, il linguaggio e il framework, e chi usa l'app.

Le chiederemo:

  • Quale linguaggio e quale framework?
  • Quali parti gestiscono input dell'utente, login o pagamenti?
  • Chi usa l'app?
  • Un incidente o un avviso specifico ha portato a questa revisione?

Confronto dei pacchetti

PacchettiBaseCodice fino a 100 righe14 €StandardCodice fino a 400 righe32 €PremiumFino a 1.000 righe con checklist di hardening62 €
Tempi di consegna1 giorno2 giorni3 giorni
Revisioni123
Righe di codicefino a 100fino a 400fino a 1.000
Frammenti correttiSìSìSì
Checklist di hardeningNoNoSì
Ordina BaseOrdina StandardOrdina Premium

Pagamento protetto

Paga al momento dell'ordine, ma il denaro viene sbloccato solo per un lavoro accettato.

  • Prezzo fissoIl prezzo del pacchetto non cambia dopo il pagamento.
  • Il denaro viene riservatoAl pagamento, l'importo viene solo riservato. Passa a Dleex quando accetta il lavoro.
  • Verificato prima della consegnaOgni risultato passa un controllo di qualità prima di arrivare a lei, e lo vede nella pagina dell'ordine prima di accettarlo.
  • Revisioni gratuiteRichieda revisioni nell'ambito del suo brief tante volte quante ne prevede il pacchetto.
  • Accettazione dopo 3 giorniSe entro 3 giorni dalla consegna non accetta il lavoro né richiede una revisione, il lavoro viene accettato automaticamente. Se scrive nella chat dell'ordine dopo la consegna, l'ordine resta in attesa; dopo la nostra risposta potremmo far ripartire i 3 giorni e glielo indicheremo nella chat.
  • Rifacimento o rimborso totaleSe il risultato non corrisponde al suo brief e le revisioni non hanno risolto il problema, oppure il lavoro richiede più del doppio dei tempi di consegna previsti, scriva nella chat dell'ordine: rifaremo il lavoro o le rimborseremo l'intero pagamento.
Come funziona →

Domande e risposte

È un penetration test o una certificazione di sicurezza?

No. Leggiamo il codice che ci invia e non attacchiamo né scansioniamo il suo sistema online, quindi non sostituisce un audit formale dove questo è richiesto.

Devo inviare password o chiavi?

Mai. Le sostituisca con dei segnaposto; se una chiave reale era già nel codice, la cambi.

Eseguite il mio codice?

No. Lo leggiamo con attenzione e ragioniamo su come si comporta, ma non lo eseguiamo, quindi verifichi ogni correzione proposta nel suo progetto.

Pacchetti
Ordina · 32 €· 2 giorni