Domanda

Quindi sto leggendo The Art & amp; Science of Javascript, che è un buon libro e ha una buona sezione su JSONP. Ho letto tutto quello che posso su questo oggi e ho anche esaminato tutte le domande qui su StackOverflow. JSONP è un'ottima idea, ma sembra solo risolvere il "Problema della stessa origine" per ottenere dati, ma non risolverli per cambiare dati.

Mi sono appena perso tutti i blog che ne parlavano o JSONP non è la soluzione che speravo?

È stato utile?

Soluzione

JSONP genera un tag SCRIPT generato su un altro server con tutti i parametri che potrebbero essere richiesti come richiesta GET. per es.

<script src="http://myserver.com/getjson?customer=232&callback=jsonp543354" type="text/javascript">
</script>

Non c'è tecnicamente nulla per fermare questo tipo di richiesta che altera i dati sul server, ad es. specificando newName = Tony. La tua risposta potrebbe quindi essere se l'aggiornamento è riuscito o meno. Sarai limitato da qualsiasi cosa tu possa adattare a una querystring. Se stai seguendo questo approccio aggiungi qualche elemento casuale come parametro in modo che i proxy non lo memorizzino nella cache.

Alcune persone potrebbero ritenere che ciò vada contro il modo in cui i GET dovrebbero funzionare, ovvero non dovrebbero causare la modifica dei dati.

Altri suggerimenti

Sì, e onestamente vorrei attenermi a quel paradigma. Tuttavia, potrei piegare la regola e dire che, le richieste che non alterano / gestiscono i dati CRUCIAL saranno accessibili tramite le chiamate GET ... hm ...

Ad esempio, sto costruendo un sistema di carrello della spesa e penso che consentire l'aggiunta / rimozione / ecc. di articoli a / da un carrello potrebbe essere facilmente esposto tramite GET, poiché anche se è possibile modificare i dati, non è possibile fare qualcosa di critico con esso. Se qualcuno aggiungesse maliziosamente 1.000 monitor a schermo piatto al tuo carrello, ci sarebbe almeno un passaggio di verifica che NON sarebbe vulnerabile a nessun attacco (una pagina ASP.NET standard a quel punto, con verifica e tutto quel jazz).

È una soluzione valida / praticabile secondo l'opinione di qualcuno?

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