Ci sono circostanze in cui un server HTTP restituirà un elenco di metodi supportati per una determinata risorsa nel suo % intestazione di rispostaAllow
, secondo RFC 7231 (la nuova RFC per HTTP 1.1 semantica):
- Primo nella risposta a una % richiesta di
OPTIONS
, o su un percorso di risorsa specifico oppure sul percorso speciale *
(che descrive principalmente le funzionalità del server);
- In secondo luogo, se si prova un metodo noto, ma non supportato dal server su una determinata risorsa, il server può rispondere con un 405 Metodo non consentito codice di stato; in tal caso, deve fornire l'elenco dei metodi consentiti in
Allow
intestazione di risposta ;
- Per qualsiasi altra richiesta HTTP, il server di origine può restituire un elenco di metodi supportati in
Allow
header di risposta ;
Ma cosa succede se il server non collabora? Per esempio. hai provato una richiesta OPTIONS *
, varie% richieste% co_de e il server non restituisce mai un elenco di metodi consentiti in un'intestazione GET
? O se il server risponde, ma si sospetta che stia mentendo?
Allora non lo sai, e dovrai conviverci. Ciò che farai dipenderà dal tuo obiettivo:
- Se stai semplicemente cercando di utilizzare il sistema di destinazione, dovresti fare la cosa cauta assumendo che solo
Allow
sia supportato, e ottieni più documentazione su come usare il sistema;
- Se stai facendo test di penetrazione, puoi testare tutti i verbi conosciuti, provare quelli meno conosciuti (come
GET
) o addirittura inventarne qualcuno di tuo; più in generale, parte del test potrebbe gettare rifiuti nel sistema per vedere come reagisce;
Tuttavia, pensa a perché vuoi sapere la lista dei verbi supportati - perché senza dati aggiuntivi, sapere quali verbi sono usati è quasi inutile (ad esempio so che PATCH
accetta la https://accounts.google.com/AddSession
verb - che cosa fa semplicemente sapere il verbo fare a me se non so in che dati dovrebbero essere, in quale formato, ecc.?)