Impedire l'accesso agli script CGI in base alla sorgente del modulo HTML
Domanda
Ho un sito web, alimentato da MODx, che è centrato attorno a un modulo. L'accesso alla pagina web con la forma è limitato ai membri registrati (gestiti da MODx). L'utente compila un paio di voci di testo, consente di selezionare un file da caricare, quindi colpi presentare. L'azione specificata è uno script CGI submit.py sotto / cgi-bin, che registra le informazioni presentate e salva il file, ed esegue perfettamente.
L'unica preoccupazione che ho è che qualsiasi forma (a quanto pare), se specificare l'URL giusto per l'attributo di azione <form>
, sembra essere in grado di collegare la loro forma al mio script CGI. Il che significa che si può scrivere la seguente sulla propria pagina:
<form action="http://my-site.com/cgi-bin/submit.py">
<!-- blah blah blah -->
</form>
ed i dati vengono inviati al mio modulo CGI ed elaborato (comportamento indesiderato).
La mia domanda è questa: c'è un modo per limitare l'esecuzione dello script basato sul modulo HTML che ha inviato i dati? Mi sto perdendo qualcosa di veramente evidente?
Ho cercato online e ho trovato una questione un po 'correlata di CSRF, ma se c'è un modo a parte token di autenticazione per impedire l'uso non autorizzato del script CGI, mi piacerebbe sentirla.
Soluzione
È possibile effettuare una volta l'uso token che deve essere inviato con il modulo per assicurarsi che sia valido (questo è quello che lei ha citato).
Anche se questo potrebbe essere afferrato e inviato pure.
Verifica del referrer non è utile perché è facilmente contraffatta, o assenti (alcuni proxy filtrarla).
In breve, senza utilizzare il token per mitigare, siete nei guai. Tranne che tutti gli altri sul web ha questo problema:)