8. Security Considerations (Considerazioni sulla sicurezza)
Questa sezione ha lo scopo di informare gli sviluppatori, i fornitori di informazioni e gli utenti sui problemi di sicurezza noti specifici delle richieste condizionali HTTP.
Disclosure of Entity Tags (Divulgazione dei tag di entità)
I tag di entità vengono spesso utilizzati in modi "non previsti", ad esempio per la sincronizzazione della cache tra più intermediari, o come mezzo per identificare snapshot archiviati di contenuti. Comprendere come vengono generati i tag di entità per una determinata risorsa è specifico dell'applicazione e spesso proprietario. L'esposizione di tag di entità che divulgano informazioni sulla logica dell'applicazione o sul comportamento della cache degli intermediari potrebbe rivelare informazioni su come aggirare i controlli di accesso di quell'applicazione o manipolare le cache intermedie.
Un server di origine dovrebbe considerare che alcuni tag di entità potrebbero divulgare informazioni che potrebbero essere considerate sensibili in certi contesti. Gli esempi includono:
- Informazioni sul controllo di versione (ad es., numeri di revisione, nomi di branch)
- Hash o firme derivati da contenuti con restrizioni di accesso
- Modelli che rivelano dettagli di implementazione interna
Denial of Service Using Conditional Requests (Negazione del servizio utilizzando richieste condizionali)
Sebbene le richieste condizionali possano ridurre la larghezza di banda di rete e il sovraccarico di elaborazione consentendo il riutilizzo delle rappresentazioni memorizzate nella cache, non costituiscono una protezione sufficiente contro gli attacchi di negazione del servizio. Client malevoli possono comunque effettuare numerose richieste condizionali per risorse diverse o la stessa risorsa con campi di intestazione condizionali non validi o in costante cambiamento, sovraccaricando la capacità del server di rispondere.
Un server dovrebbe monitorare l'uso delle richieste condizionali e considerare misure di limitazione della velocità o altre misure difensive quando vengono rilevati modelli anomali.
Protocol Element Length (Lunghezza degli elementi del protocollo)
I server dovrebbero porre limiti ragionevoli alla dimensione e al numero di valori dei campi di intestazione condizionali, in particolare i tag di entità nei campi di intestazione If-Match e If-None-Match, poiché non esiste un vincolo di lunghezza standard sui valori dei tag di entità. Tag di entità estremamente lunghi o un numero eccessivo di tag di entità in un singolo campo di intestazione potrebbero essere utilizzati per esaurire le risorse del server.