Prendiamo l'hosting sul modo in cui monitora una richiesta dal browser. Prima di tutto guardiamo come il contenuto raggiunge l'utente, poi come l'app controlla la richiesta. Nelle sezioni recenti c'è accesso al server, Fail2Ban e ritorno dal backup.
Plesk A partire dal layout di hosting
Un sito di comunità, un negozio e un pannello di supporto; file applicativi, database e servizi in esecuzione di questi due. Plesk Connettere il nome di dominio al sito, la gestione della certificazione, le impostazioni del server web e dell'operazione dell'applicazione sono affrontate nello stesso livello di gestione.Quando un utente apre la pagina, i file di visualizzazione e stile aperti possono essere presentati dal server web. Le transazioni personali come sessione, saldo o richiesta di supporto sono valutate in pratica, i record necessari vengono prelevati dal database. il supporto passa attraverso il controllo di accesso.
Plesk La versione PHP e i pool di lavoro che l'applicazione utilizza su di esso possono essere gestiti. Le connessioni del database, le autorizzazioni dei file e i backup devono anche essere organizzati in base alle esigenze del servizio. le stesse parti di servizio per raggiungere il record.
Quanto velocemente il tuo sito web si apre in diversi paesi?
Il contenuto comune è effettuato nell'applicazione delle transazioni di sessione presentate da diverse regioni.Consegniamo il traffico agli utenti in diversi paesi incontrando la posizione che è opportuno essere richiesto. I contenuti comuni come logo, file di stile e visuali aperte possono essere presentati da un punto vicino all'utente. Pertanto, non ha bisogno di andare al server host per ogni immagine. Il percorso veloce per l'utente in un paese potrebbe non dare lo stesso risultato in un altro paese Il primo tempo di risposta dovrebbe essere misurato da diverse regioni.
Il pannello di sessione passa attraverso l'applicazione autorizzata delle transazioni di saldo e pagamento. Ad esempio, la stessa visualizzazione del prodotto può essere presentata dalla cache in più paesi. Se l'utente è accreditato, la transazione viene elaborata al record principale dell'ordine e il nuovo equilibrio viene mostrato solo sulla propria sessione.
Le richieste Web raggiungono il server
Come leggere la regola ModSecurity?
PleskModSecurity, utilizzato per il firewall delle applicazioni web in , controlla le richieste HTTP con regole strutturate. L'insieme di regole descrive quale processo guarderà l'area, quali corrispondenze e corrispondenze. Una regola può solo esaminare il modo e il metodo di richiesta. Le intestazioni di richiesta vengono lette nella fase iniziale; il controllo del corpo viene effettuato dopo la separazione dei contenuti. È necessario verificare che il separatore appropriato funzioni per un punto finale utilizzando JSON o file upload.Per esempio, quando si accetta un testo aperto della pagina di ricerca, l'indirizzo di caricamento del file è in attesa di un tipo specifico di richiesta POST da solo. I muore per eseguire lo script nella casella di ricerca sono controllati. In indirizzo di caricamento dei file, metodi, dimensione del corpo e numero di file sono limitati. Se è supervisionato, quali tipi di contenuti dovrebbero essere determinati. Un dettaglio di errore di stampa o database che si estrae sulla schermata di errore dell'applicazione. L'app dovrebbe mantenere le loro risposte di errore semplici, scrivere dettagli diagnostici appositamente.
| Regola famiglia | Campione reticolato | Controllo completo nell'applicazione |
|---|---|---|
| Add-on e XSS | Etichette Betic, attributi degli eventi e schemi di connessione eseguibili | Con il testo HTML, l'attributo o il contesto URL. Limitare il testo ricco con gli elementi consentiti. |
| SQL injection | sintassi per cambiare la struttura della query del valore di forma | Selezionare le opzioni dall'elenco fisso, che determina la struttura delle query come colonna della classifica. |
| migrazione stradale e accesso ai file | Richieste che cercano di uscire dalla directory dell'applicazione o ottenere una configurazione speciale | Installare il percorso del file dall'ingresso dell'utente. Verificare l'ID di registrazione e aprire il file dal negozio autorizzato. |
| Iniezione di comando | Separatori speciali e script inaspettati per comandi di sistema | Combina i dati dell'utente al comando shell. Convalida l'elaborazione e i parametri separatamente. |
| Forma e dimensione | Forma rotta o JSON, metodo inaspettato e corpo eccessivo grande | Identificare il tipo, i campi e le dimensioni accettate da ogni punto finale. |
Valutare la richiesta nel contesto invece di bloccare con una sola parola
In un messaggio di supporto, la parola "script" o "select" è usuale. Ad esempio, un utente può inviare testo di errore tecnico. L'audit dovrebbe guardare a che campo e in quale struttura della parola. Con tag script da un campo di testo normale, il campione di codice mostrato come testo in un messaggio di sostegno non dà lo stesso risultato. Con il firewall, l'applicazione può venire a una comprensione diversa nell'app che vale la pena passare attraverso l'audit se ci sono commenti diversi tra loro.OWASP Core Rule Set (CRS) converte le partite in punti sulle installazioni utilizzate per le anomalie di valutazione. Ad esempio, con un'intestazione sospetta, il dado di attacco nel corpo può segnare insieme nella stessa richiesta. Il punteggio totale è bloccato quando raggiunge la soglia configurata. Gli ID di regola indicano che corrisponde al punteggio. Se c'è un altro livello di rete davanti al firewall, ogni caso ogni È necessario testare la richiesta dinamica in un modo che realmente passa attraverso il controllo.
Quale regola cambia se una richiesta valida è bloccata?
Le nuove regole devono essere testate in primo luogo con flussi di lavoro reali in modalità di rilevamento o in un ambiente di prova. Il prodotto salva, messaggio di supporto, upload visivo e avviso di pagamento firmato sono provati singolarmente. Se un modulo è accidentalmente bloccato, la richiesta si trova sulla strada e l'ID regola. Ad esempio, se un editor di design autorizzato è veramente HTML previsto nell'unico campo della singola area, non vi è alcuna eccezione In tale eccezione, l'applicazione deve essere sottoposta a un proprio controllo di autorizzazione e contenuto.Quando si attiva il blocco, la transazione valida dovrebbe essere riprodotta alla richiesta corrotta e allo scenario ad alto traffico. Il motivo per cui la decisione sui registri deve essere visto, password, dati di pagamento e interruttori di connessione devono essere mascherati. La velocità di errore che gli utenti reali ricevono tra i risultati da monitorare è il numero di blocco e il tempo di risposta nelle ore occupate. Dovrebbe anche completare correttamente la notifica, il messaggio di supporto e l'upload dei file.
Plesk ModSecurity guide · OWASP CRS anomalia nominale · OWASP CRS mismatches e eccezioni di regola
Metti il posto giusto di verifica gestito
WAF valuta i modelli di attacco noti con il modo, corpo e altri segnali che vogliono. Ci deve essere una regola ben definita, che include il limite di tempo per traffico del browser sospetto, Managed Challenge e passaggi di blocco quando necessario. Può anche appartenere a decine di utenti sulla stessa rete di scuola IP. Se si mette la verifica del browser sull'indirizzo di consegna o sulla comunicazione di pagamento del plugin, non può rispondere all'automazione.Supponiamo che una serata di venerdì abbia centinaia di richieste in un minuto di IP. Le richieste apriranno la visuale a tutti, la maggior parte delle quali sono soddisfatte dalla cache e se il numero errato di voci non è aumentato, gli utenti possono immediatamente raffreddare l'IP dal gioco. Se lo stesso IP viene chiamato password su centinaia di account diversi a breve distanza, il limite di velocità è significativo per il percorso di ingresso. Leggere la corrispondenza delle richieste, quindi applicare la verifica o il blocco per un certo tempo.
Richiesta, sessione e controllo delle autorizzazioni nell'applicazione
Il modulo del browser dell'utente viene soddisfatto all'ingresso di un plugin per il gioco e di un caricamento dei file. Nel controller centrale, la richiesta passa attraverso livelli di controllo prima di iniziare il processo corrispondente. Il primo strato limita la richiesta fino a quando la stessa fonte sarà occupata in breve tempo. Applicabile. Quando il limite viene riempito, verrà interrotto con una risposta che informa la richiesta di aspettare. Pertanto, non deve condividere lo stesso bilancio in continua richiesta di supporto con una visione della pagina ordinaria.
La pagina aperta a tutti, il pannello di sessione e l'avviso di pagamento passano attraverso diversi controlli.Regola impostata per riflettere le voci e i dati POST nella pagina
Il controllore centrale esegue la scansione delle aree di forma, inclusi gli array nidificati. Eliminando il corpo nelle corrispondenti estremità JSON, eliminando i valori. La normalizzazione prima della scansione assicura che lo stesso input codificato in diversi formati venga valutato con le stesse regole. Se si guarda i dati in una sola richiesta.| Esempio visto nell'ingresso post | Obiettivo dell'audit |
|---|---|
| tag Betic o iframe, attributo eventi HTML, javascript: link | Quindi impedire l'esecuzione del codice nel browser dell'ingresso riflessa su una pagina. |
| tag di apertura PHP, chiamata shell exec o sostituzione comando shell | Bloccare il contenuto nel campo di testo per l'esecuzione del codice o dello script sul server. |
| Un wrapper di flusso come il tentativo di uscire dall'alto array o php:// | Tagliare l'ingresso che funziona per uscire dal percorso di file previsto o aprire un flusso alternativo. |
| Struttura dell'UNIONE SELECT, chiamata SQL che produce ritardo o scrive lo stampo per file | segnare l'ingresso volto a cambiare il risultato della vite, tempo di lavoro o effetto. |
Anche se la richiesta viene da un utente autorizzato, un altro utente deve cambiare il suo record. Il controllo CSRF dovrebbe essere applicato nelle transazioni di scambio dati con la sessione del browser. I valori in arrivo devono essere collegati a query come parametri e codificati secondo il binding utilizzato quando scritto sulla pagina. Il contenuto deve essere verificato con un'etichetta aperta e l'elenco degli attributi. Quindi, un valore memorizzato nell'ingresso non si trasforma in script di esecuzione dei contenuti su un'altra schermata che viene poi visualizzata.
| Home | Le regole da definire | Comportamento previsto |
|---|---|---|
| Richiesta ingresso | Limiti di metodo, dimensione, spazio e tipo | La richiesta non valida viene respinta prima del processo. |
| Autorità di transazione | Accedi, registrazione e controllo CSRF se richiesto | L'utente è autorizzato solo a registrarsi. |
| Database | query del parametro e accesso minimo richiesto | L'ingresso dell'utente non può cambiare la struttura della query. |
| Produzione | Collegamento di codice appropriato e testo ricco | Il contenuto non funziona codice indesiderato durante la visualizzazione. |
| Traffico intenso | Limite di velocità, verifica e blocco periodico | L'uso sospetto è limitato, il modo normale di funzionamento è mantenuto. |
Non determina il limite di sicurezza nelle caselle di forma
Se il server sembra una sessione da solo, l'utente può aggiungere i file alla richiesta di un altro utente facendo 471 nella richiesta. Anche se il file è un PNG impeccabile qui. Verificare che la persona che accede prima ha diritto di accedere a tale richiesta, allora l'autorità di aggiunta. Infine, il file stesso del file stesso non è autorizzato. Identità, autorizzazione delle transazioni e tipo di file sono tre controlli separati.Lo scopo di registrare il testo scritto dall'utente non è quello di eliminare qualsiasi carattere speciale. 5 < 10 Lo stesso valore è codificato in HTML, mentre entra nella query del database come parametro. La risposta JSON scritta anche con encoder JSON. Con una singola funzione “pulita”, tutti questi contesti funzionano per risolvere, entrambi disturbano i messaggi reali, lasciando alcuni schermi.
Cosa succede se il cookie di sessione viene utilizzato da un altro IP?
Se qualcuno copia il token e lo invia da un altro IP, la sessione non corrisponde alla registrazione e la richiesta non è autorizzata da tale account. La stessa regola può richiedere il rientro se l'utente cambia IP dai dati mobili al Wi-Fi.httpOnly è utilizzato nel cookie di sessione PHP. Quando viene utilizzato HTTPS, Secure è anche abilitato. Il JavaScript nel browser httpOnly limita il cookie direttamente a leggere. Cookie sicuro permette che venga inviato tramite HTTPS. L'accoppiamento IP limita il riutilizzo di un token catturato da un indirizzo diverso. così funziona insieme.
Caricamento file e archiviazione sicura
Come capisci che una foto è davvero immagine?
L'intestazione MIME inviata dal browser può essere modificata. Mettere il limite di dimensione sulla linea di installazione, controllare l'estensione consentita, digitare dal contenuto del file e aprire la visuale con una libreria di immagini. Limitare il numero di pixel. Quando un piccolo file compresso è aperto, può consumare troppa memoria. Nella directory, PHP non dovrebbe essere gestito, ci deve essere un controllo della proprietà nel scaricare i file speciali.Nome file generato da doppia estensione e sistema
Nome di un file immagine.php.png Infine, la scrittura PNG non à ̈ in grado di dimostrare che i dati all'interno dell'immagine. E 'importante che il tipo di file e la struttura visiva siano corretti durante l'installazione. Se un vero PNG passa la verifica, l'identificazione del sistema viene utilizzato invece del nome originale del file nei flussi di registrazione visivi supportati. 8d7c42f1.png Le parti che l'utente aggiunge al nome del file non determinano il nome del file sul server.Modificare il nome, il contenuto significa bloccare i controlli da eseguire nell'area di verifica e caricamento. Non solo abbreviare il nome del file, ma un contenuto eseguibile mostrato come l'immagine non porta al sicuro.
Il componente di installazione si rivolge a CGI, script shell, JavaScript e PHAR come contenuto eseguibile insieme alle estensioni commentabili come PHP e PHTML. La protezione dello script nei file processori generali può gestire questi tipi come testo normale e aggiungere .txt per conto del file. L'area di upload visivo rifiuta il file che non rispetta la sua lista MIME permesso. non significa che i processori possono memorizzare un file di testo, lo stesso file verrà considerato visivamente.
Come trattare gli script memorizzati in SVG?
SVG descrive il disegno con una struttura basata sul testo. Può essere aggiunto a un attributo di attivazione scripturale, incidente o connessione pericolosa nella struttura. Il file può portare contenuti che cambieranno il comportamento della pagina all'interno di apparire come un piccolo logo sullo schermo. Pertanto, il sistema esamina anche i contenuti di SVG. Le etichette dello script, processori eventi, pericolosi schemi di collegamento e componenti incorporati sono esempi controllati. L'installazione non scomoda è bloccata senza essere elaborata.Il compito dell'area di installazione è anche importante. Con il normale campo visivo utente, non è necessario avere la stessa politica dei file, che è inclusa nella presenza progettuale della persona autorizzata. Nel flusso di protezione revisionata, ci sono vincoli generali di carico e controlla aree specifiche di progettazione. Ciò non significa che ogni SVG sia accettato; anche nell'area consentita, il contenuto del file ha Ho controllato.
Chi può accedere al file quando l'installazione è completata?
Può essere aperto al pubblico per tutti, se lo screenshot che richiede il supporto può contenere l'indirizzo e-mail dell'utente. Entrambi non dovrebbero essere le stesse delle regole di archiviazione e offerta anche se ci sono immagini. Tenere l'allegato di supporto al di fuori della root web, verificare che l'utente abbia ancora accesso alla richiesta corrispondente nella richiesta di download. Non usarlo, puoi presentare il pubblico come una visuale codificata e non operativa.In caso di errore durante la produzione di predisposizione, è necessario non aprire a tutti in parte. Salvare sullo spazio temporaneo e spostare l'output dal nome finale. Impostare il limite di dimensione sia sul server web che sul lato PHP. Ad esempio se l'applicazione mette il limite di 4 MB, quindi il server davanti ad esso accetta corpi molto più grandi, anche il file che verrà rifiutato sarà respinto, anche la larghezza di banda del nastro e il temporaneo Fornisce un messaggio chiaro all'utente nella richiesta superiore al limite che si può provare di nuovo.
Modelli MVC e modifiche SFTP
Come dividere il modello e il codice di applicazione con MVC?
Quando viene aperta una pagina di negozio, il controller risponderà alla richiesta e determinerà quali record possono essere consultati. Lo strato di dati porta prodotti e prezzi. L'aspetto produce la pagina con nome del prodotto, prezzo e informazioni di stock date ad esso. Grazie a questa distinzione, il flusso di pagamento o database per modificare la scheda di prodotto o il layout dell'elenco di un tema Non c'è bisogno di cambiare la query.I file tema e pannello modificabili appartengono allo strato di presentazione. Il controller del modello può essere gestito da etichette PHP, intestazioni per i commenti degli script e blocca direttamente gli stampi SQL allegati all'aspetto. Anche con il nome del file .php, il contenuto è soggetto a queste regole. Il motore del template compila il modello verificato al proprio formato di lavoro. La direttiva sull'output grezzo è limitata, i percorsi patrimoniali sono anche relativi e limitati con directory consentite.
Un tema può mostrare il titolo della richiesta di supporto. L'intestazione decide backend a quale utente verrà mostrato e quali record dal database saranno ritirati. Se il file tema è direttamente autorizzato a leggere i file dal server o aprire una connessione di rete, l'effetto di un cambiamento di progettazione si estende ai dati del negozio.
Cosa fa MVC quando l'ingresso dell'utente viene riflesso nella pagina?
C'è un rischio di XSS che brucia se viene mostrato nella stessa risposta. Viene registrato un messaggio di supporto, e poi quando viene visualizzato su un altro schermo, il rischio XSS è nato. In entrambi i casi, come il browser commenterà i dati, determina l'aspetto di MVC dove l'output viene generato.Il compilatore del modello funziona per valori standard output HTML, codici caratteri speciali e unghie. Ad esempio, il <script> in un input appare come testo all'utente quando scritto nel campo di testo HTML. Il valore grezzo del modello è anche bloccato nel controllo sorgente. Nelle aree in cui i ricchi bisogni HTML sono chiaramente utilizzati blocchi backend uç. Se un valore viene utilizzato come URL, Il grafico di collegamento consentito dovrebbe anche essere applicato alla codifica JSON sicura se viene trasferito a JavaScript come dati.
Come attivare il modello organizzato con SFTP?
Nella sincronizzazione SFTP, il file viene prima a una copia di lavoro separata per il tema. Lo strato di sincronizzazione controlla che il file appartiene al tema corrispondente e si trova su un percorso modificabile. La risoluzione stradale impedisce le transizioni delle directory dall'area di lavoro e dai link rimanenti dell'obiettivo all'esterno. è anche confrontato.La copia di lavoro esegue la scansione del contenuto prima che venga inserito nel modello attivo. Chiamata Shell, lettura dei file o elenco indice, l'accesso alle variabili multimediali, le operazioni di cURL e socket sono esempi controllati in questo strato. La modifica bloccata non verrà scritta nel modello abilitato. decide.
Quali autorizzazioni di lavoro dovrebbe essere dato a un plugin?
Se un add-on formatta l'elenco dei prodotti, non c'è bisogno di cambiare o collegare i permessi dei file. Diversi modi per raggiungere la stessa autorità dovrebbero essere discussi insieme mentre le restrizioni sono determinate.| Area di autorizzazione | Metodi di utilizzo da rivedere |
|---|---|
| Esecuzione del comando | Avvio diretto della chiamata di shell, della sostituzione dei comandi o del processo di funzionamento separato. |
| Esecuzione del codice | Generare codice dal testo, caricare il codice da file, indiretto o chiamata dinamica. |
| Accesso alla rete | leggere i dati tramite richiesta HTTP, presa diretta, client di trasferimento file o rete con cURL. |
| Sistema file | Lettura e scrittura di file, elenco indice, creazione di link o modifica del permesso. |
| Ambiente di applicazione | Le variabili dell'ambiente di lettura, la modifica delle impostazioni operative o lo stato dell'applicazione comune. |
Informazioni sull'accesso del server e sulla connessione
Dove usare la password del database?
Nell'ambito del flusso di connessione rileviamo, la password viene memorizzata nel server crittografato e risolta dal processo di applicazione che collega il link. Quindi, vedere un record di configurazione non può essere letto solo la password del database.Le schermate di gestione e supporto devono mostrare le informazioni necessarie per il processo in quanto la connessione non funziona. Il valore aperto della password non deve essere incluso in questi schermi o risposte di errore. Con l'interruttore di risoluzione, la registrazione crittografata deve essere mantenuta separatamente e limitata al processo che crea l'accesso alla chiave.
PleskFail2Ban e protezioni di accesso in
Su Linux PleskFail2Ban, che può essere attivato nel monitoraggio dei registri dei servizi selezionati. La regola definita per ogni servizio determina quali record conteranno, quante prove riempiranno la soglia entro il quale tempo e per quanto tempo è bloccato. Ad esempio se ci sono voci fallite dallo stesso IP allo SSH, la regola corrispondente potrebbe temporaneamente tagliare l'accesso dell'IP sul firewall. Plesk servizi come pannello, SSH e posta possono essere visualizzati con diversi registri e regole.PleskL’accesso all’amministratore può essere aperto anche a determinati indirizzi IP o reti. I conti che non necessitano di connessioni remote nel database possono essere limitati all’accesso locale. Se un server di applicazione separato è collegato, solo l’accesso al relativo account del database viene fornito dalla fonte richiesta.
Fail2Ban elabora il livello IP in base agli eventi che si vedono sui registri di servizio. Poiché possono condividere lo stesso IP più persone, la soglia e la durata dell'ostacolo devono essere regolati secondo il servizio, gli ostacoli devono essere monitorati ogni giorno.
Plesk Fail2Ban e protezione da ingresso · Limitazioni di accesso ai manager · Regole di accesso al database
Densità, backup e ritorno
Plesk, Docker e molto veloce aperto pagina
Plesk In un'installazione utilizzata in Docker, processore e limiti di memoria, i file di applicazione di sola lettura e gli ID di servizio separati limitano l'effetto di un lavoro. La velocità della pagina principale determina lavori concreti: dimensioni visive, richieste di database e processo dall'attesa per la prima risposta. Tenere il pannello privato dell'utente al di fuori della cache comune. Monitorare le risposte più lente e le richieste PHP in attesa sulla coda.Cosa misurare prima di aprire un contenitore?
ZonelyIl nostro obiettivo è quello di completare ogni richiesta utilizzando il minor numero possibile di risorse. Monitoriamo il tempo della CPU, l'utilizzo della RAM, l'accesso al disco e alla rete e i dati scritti nel campo swap. Mostra il tempo di risposta e la velocità di errore in intensità insieme al consumo di risorse che un cambiamento non funziona.Quando gli utenti dicono "sito congelato" la prima distinzione è dove si prevede la risposta. Aprire pagina dei risultati per tutti è veloce, iniziare da query SQL che funzionano allo stesso tempo confrontando il pannello dell'utente che ha effettuato l'accesso. Se l'immagine statica è più lenta allora dovrebbe essere rivisto anche rete, disco o capacità server. Tutti i dipendenti in piscina PHP stanno aspettando di rispondere lentamente da un servizio esterno, l'utilizzo della CPU è basso Aumentare il numero di dipendenti può aumentare la restrittività inviando domande più simultanee al database.
Ad esempio, è possibile calcolare nuovamente la tabella dei risultati e offrire un partner per breve tempo invece di ricalcolo per ogni utente. La corrispondente pagina e il carrello “Il mio account” sono speciali per l’utente. Dopo aver cambiato la regola della cache, aprire lo stesso indirizzo con due diversi account di test. Se il secondo utente vede il nome, l’equilibrio o il carrello del suo primo utente, le prestazioni sono disponibili Per esempio, i dati sono stati rivelati. Non completare il test guardando l'ora di apertura della pagina.
A che ora rimarrà il negozio quando tornerà al backup?
Pensate di aver perso i pagamenti dalle 03.00 del mattino o dal pranzo. Il fornitore ha ricevuto il denaro e diversi premi per il gioco può essere consegnato. Alcuni premi che vengono eseguiti immediatamente sul vecchio database possono distribuire la seconda volta. Aprire il negozio ripristinato in ambiente isolato prima. Confrontare i successivi documenti di pagamento e consegna del backup, quindi impostare gli ordini mancanti, quindi selezionare la coda La prova di recupero per un sito comunitario è più preziosa del controllo di "backed" da solo.L'ultima prova è semplice: inviare il tipo sbagliato di file, caricare una piccola foto valida e aprire la tabella dei risultati di un utente normale in questo momento. Quindi ripristinare il backup in un ambiente separato.
Guida di caricamento file OWASP · Cloudflare pagine di verifica







“10 da 10 Non ho nemmeno la funzione su altri software.”