È un modo sicuro per gestire una risposta JSONP?

3

Sto lavorando a uno script non critico che verrà eseguito periodicamente, in realtà solo per l'intrattenimento del team di sviluppo. Perché è divertente, a volte non importa se si blocca (ad esempio: non mi importa se le modifiche a monte del formato di risposta mi costringono di tanto in tanto ad aggiornare lo script). Tuttavia, deve essere sicuro per l'esecuzione sul server della mia azienda.

L'origine dati per questo script sarebbe una risposta JSONP da un server esterno. So che JSONP non è qualcosa di cui posso fidarmi completamente per eseguire direttamente, dal momento che potrebbero cambiare la loro risposta per contenere JavaScript arbitrario.

La risposta sulla pagina JSON attualmente è simile a questa:

callback(INSERT_JSON_HERE);

Se estraggo il JSON usando una regex per rimuovere il callback circostante:

^callback\(([^)]*)\);$

e passa la stringa JSON estratta a JSON.parse() , questo approccio sarà sicuro?

Ragionamento : non eseguo alcun codice direttamente dal sito straniero. Prendo solo una parte della loro risposta che dovrebbe contenere JSON e passarla a JSON.parse() . Se non contiene JSON, JSON.parse genererà un errore. Se cambiano la richiamata o usano un altro codice al posto della richiamata, l'espressione regolare non estrarrà nulla.

    
posta Anon 24.11.2015 - 21:42
fonte

1 risposta

1

Se tutto ciò che stai facendo è estrarre lato server JSON, allora quello che stai facendo è "sicuro fino ad ora".

Ricorda, la sicurezza è tutta relativa al contesto in cui i dati vengono quindi utilizzati. Dopo tutto, i dati sono solo 1 e 0. È quando lo si trasmette all'HTML dovresti assicurarti che sia sicuro e non possa contenere script, o quando lo metti in un database per assicurarti che sia passato come dati piuttosto che come parte della query.

    
risposta data 26.11.2015 - 12:14
fonte

Leggi altre domande sui tag