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.?)