bazaar
Un negozio e-commerce su un micro-framework PHP proprietario - senza Laravel e Symfony. Catalogo, carrello in sessione, Stripe Checkout, account clienti e un back office amministrativo completo, su sessioni rafforzate e solo prepared statement.
Un negozio e-commerce su un microframework PHP fatto a mano, senza Laravel, senza Symfony. Un catalogo di prodotti, un carrello in sessione, Stripe Checkout, account clienti e un back office di amministrazione completo. Con i pagamenti non c'è spazio per scorciatoie, quindi le sessioni sono irrobustite e solo prepared statement raggiungono il database.
Introduzione
I grandi framework PHP gestiscono molte cose per te, sicurezza inclusa. bazaar vi rinuncia di proposito: un microframework scritto da zero significa che custodisci tu stesso le sessioni, costruisci tu stesso le query e sei l'unico responsabile di impedire che i dati dei clienti trapelino. Non c'è uno strato che in silenzio rattoppa le tue sviste.
È un progetto sulla disciplina, non sulle funzionalità. Il negozio fa esattamente ciò che ti aspetti da un negozio, ma tutto il suo valore sta nel fatto che ogni punto di contatto con l'utente e il database è un confine che devi sorvegliare a mano e consapevolmente.
Una discesa deliberata al PHP nudo
Quando togli il framework, se ne va anche la rete di sicurezza che di solito vive nella configurazione predefinita. Escaping, protezione delle sessioni, binding dei parametri nelle query, niente di tutto ciò è più gratuito. bazaar lo tratta come una lezione: per scrivere un negozio sicuro in PHP nudo, devi capire ogni minaccia da cui un framework normalmente ti protegge.
La disciplina qui è tonificante, perché non c'è alcun posto dove nascondere una scorciatoia. Se hai messo insieme una query da stringhe da qualche parte o ti sei fidato dei dati di un modulo, si vede subito, e la responsabilità è senza ambiguità tua.
Dal carrello al pagamento
prodotti con prezzi, categorie e uno stato di pubblicazione.
voci tenute lato server, immuni alle manomissioni nel modulo.
il pagamento affidato a un fornitore specializzato, senza toccare i dati della carta.
storico ordini per il cliente, un pannello di amministrazione completo per il proprietario.
La chiave è nei passi due e tre. Il carrello vive lato server, quindi prezzi e quantità non sono ciò che è arrivato dal browser ma ciò che il negozio stesso ha deciso. Il pagamento va a Stripe, quindi un numero di carta non passa mai per il nostro codice, il che rimuove dal sistema la fetta di responsabilità più pericolosa.
Il confine che sorvegli a mano
Il negozio accetta pagamenti, quindi gli errori non sono cosmetici. Non una sola query viene assemblata da stringhe. Solo prepared statement, sempre, perché è l'unico confine che ferma davvero un'iniezione SQL.
Ogni input dall'esterno viene trattato come ostile finché non viene legato a un parametro o sottoposto a escaping. Non è paranoia ma l'unico modo in cui un negozio senza la rete di un framework può essere sicuro.
Il risultato non è un negozio più ricco di funzionalità di quelli su Laravel, ma un negozio la cui sicurezza capisci fino in fondo, perché l'hai costruita tu stesso. Ogni confine è esplicito, ogni query parametrizzata, e l'elemento più sensibile, i dati della carta, non vive affatto nel nostro sistema.
Dov'è il confine e da cosa è sorvegliato
| Confine | Sorvegliato da |
|---|---|
| Input del modulo | validazione ed escaping |
| Query al database | solo prepared statement |
| Carrello | lato server, sessione irrobustita |
| Dati della carta | affidati a Stripe, mai da noi |
Altri progetti
Altri lavori della stessa categoria - scopri come affrontiamo sfide simili.
Hai un progetto simile?
Contattaci - il preventivo è gratuito e arriva entro un'ora.



