Conservo i post del blog in un database? E come posso continuare a pubblicare post?

4

Sto provando a creare un blog semplice da zero, ma mi viene in mente che probabilmente non dovrei avere un mucchio di pagine html statiche a cui collego, soprattutto perché voglio che la home page sia una cascata di anteprime di ogni post. Quindi stavo pensando che avrei archiviato i post in un database, e avrei recuperato solo le parti per la home page e poi il tutto per la pagina di ogni singolo post. Ma come principiante, ho due problemi.

Il primo è che non so se questa è una buona pratica o ciò che qualcuno effettivamente fa. Ogni volta che vedo esempi o tutorial su come utilizzare i database, ha sempre dati molto brevi come nome, indirizzo e numero di bambini. Mai un intero post sul blog. E anche non le foto che andrebbero avanti all'interno del post. Quindi c'è un altro modo per memorizzare tutte queste informazioni? Forse memorizzi i nomi dei file nel database? Sono particolarmente preoccupato per le immagini, non ho idea di come funzioni.

Il secondo problema è una volta che è tutto configurato e online, non so come continuerei ad aggiornarlo. Farei un percorso POST a cui solo io posso accedere? Mi sembra un rischio per la sicurezza.

Perdona la mia ignoranza, immagino sia una domanda così semplice che non riesco a trovare nulla che risponda esplicitamente. Non conosco i nomi giusti per chiedere abbastanza bene, quindi sto solo cercando alcune best practice.

    
posta Cordello 13.11.2016 - 08:03
fonte

1 risposta

8

Sembra che tu stia creando un Content Management System (CMS). Molti di questi sistemi esistono già e la maggioranza archivia il contenuto all'interno di un database.

Il fatto che il contenuto possa essere piuttosto grande non è un problema. Il database può gestire grandi quantità di testo normale o dati binari per voce senza problemi. Il punto importante da ricordare è che non ha senso imporre una dimensione massima per i post del blog, quindi in un database SQL non possiamo dichiarare la colonna con tipo VARCHAR(10000) o qualcosa del genere. Invece, probabilmente vorrai un tipo di dimensione non ristretta TEXT o BLOB . Per i tipi di TEXT , dovrai scegliere una codifica di testo adatta: molti database non sono del tutto compatibili con Unicode.

Alcuni CMS gestiscono risorse statiche come immagini separatamente dal contenuto della pagina. Per esempio. Wordpress consente all'utente di caricare immagini e altri file nella cartella /wp-content/ . Le richieste per queste risorse possono essere gestite direttamente dal server HTTP. È più veloce di instradare la richiesta attraverso il CMS.

Un CMS ha sempre un'interfaccia di gestione in cui è possibile accedere, configurare il sistema e creare e modificare il contenuto. Questo dovrebbe richiedere un login (ad es. OpenAuth o password su HTTPS). Il backend CMS verifica ogni richiesta che potrebbe influire sulle impostazioni o sul contenuto per una corretta autorizzazione: l'utente deve essere registrato e deve disporre dei diritti necessari, se il CMS include un sistema di gestione dei diritti. Ciò può essere fatto in modo sicuro, ma è facile commettere errori fatali, specialmente se prima non hai creato un'applicazione web. I problemi più comuni sono le vulnerabilità o i bug di SQL injection nel controllo dell'autorizzazione per ogni azione protetta. Se il sito consente al contenuto di essere generato da utenti non fidati (commenti, una barra di ricerca o una pagina 404 che visualizza l'URL mancante), sono possibili anche gli attacchi XSS.

Negli ultimi anni, il blogging statico è diventato sempre più popolare. Qui, nessun CMS viene eseguito nel server web. Dato che non c'è codice, non ci possono essere problemi di sicurezza nel nostro codice. Invece, tutti i file HTML sono stati creati su un computer diverso e quindi caricati sul server web. Lo strumento che crea i file HTML dal contenuto può essere arbitrariamente complesso. Ho scritto il mio motore di blogging statico che imita Jekyll e supporta un sistema di tag, postare estratti sulla home page, feed RSS, tematiche, .... Le uniche caratteristiche che un sistema statico non può avere sono funzioni dinamiche come i commenti degli utenti o una barra di ricerca, almeno non senza l'utilizzo di provider di terze parti.

    
risposta data 13.11.2016 - 09:40
fonte

Leggi altre domande sui tag