Domanda

Ho Pigiami e Django esecuzione tramite Apache2 con mod_wsgi su Windows 7. Non credo che sto ricevendo problemi dalle messe a punto di queste cose, però: l'unica cosa che non funziona sta cercando di informazioni POST da forme pigiama-generato. Cercando di utilizzare forme Pigiama-generate nella mia applicazione produce 403s (la "verifica CSRF non riuscita" pagina di errore).

Ho trascorso ore su questo e leggere tutte le risposte che ho trovato qui relativi a CSRF e pigiami, e fatto un sacco di ricerca esterni solo su CSRF e Django, Django e Ajax, ecc Se questa domanda isn' t chiunque di raggiungere chi ha sa solo che cosa fare in questa situazione, credo di aver ridussero l'essenza della questione.

Come sarebbe uno ottenere il {% csrf_token %} nella forma pigiama generati? Sembra che potrebbe essere impossibile, perché da quanto ho capito i token CSRF non sono persistenti, che una pagina Pigiama-generata è ... pagina pigiama è generato da un file .py Pigiama, con conseguente una cartella piena di roba hard-coded . Come è possibile che vorrei integrare il CSRF token corrente in quella forma già codificati?

Per favore, non esitate a chiedere maggiori dettagli, questo problema è stato incredibilmente difficile da navigare. Nessuna delle informazioni pubblicate sull'integrazione Pigiama & Django riguarda questo; e le uniche soluzioni che ho trovato che sembrano consapevoli di CSRF in Django dicono che si dovrebbe probabilmente solo disabilitare la protezione CSRF (che potrebbe fare, ma quello che la protezione ho potuto mettere al posto di esso? La mia biscotto sistema? E 'una pessima idea per disabilitare la protezione CSRF in ogni caso?).

Grazie!

È stato utile?

Soluzione

Avrai bisogno di scrivere qualche JavaScript per ottenere il gettone CSRF dal cookie (parte della richiesta HTTP), quindi aggiungere al modulo di invio.

Guardate questa risposta per un punto di partenza: Django CSRF controllare in mancanza di una richiesta Ajax POST

La chiave qui è che può essere il JavaScript persistente come i file Pigiama-generati, perché si posticipa la gestione del token fino a quando il modulo viene inviato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top