E 'una buona idea passare un URL come parametro per un servizio pass-through?

0

Sto sviluppando un servizio nel nodo JS che fungerà da middleware per un client che chiama un'API di terze parti.

Il mio servizio eseguirà alcuni controlli di sicurezza e dei ruoli utente prima di chiamare la terza parte.

Quindi quando chiamo il mio servizio sembra questo https://myservice/:param1/:thirdPartyURL

Uso il param1 per effettuare alcuni controlli di sicurezza.

Quindi la mia domanda è, è ok passare il thirdPartyURL desiderato come parametro in modo da poter effettuare la chiamata dopo che i controlli di sicurezza sono passati?

Mi chiedo se questa è una pratica comune e se la mia implementazione sarebbe insicura.

    
posta Code ProX 10.04.2018 - 02:56
fonte

1 risposta

2

In primo luogo, è necessario decidere, in generale, se si desidera trattare l'applicazione client come "affidabile". Se non sei sicuro, dovresti trattarlo come non affidabile. Non è personale; questo non significa che pensi che le persone che gestiscono quel sistema non siano affidabili. Significa semplicemente che desideri contenere il rischio, ad es. non credi che abbiano lo stesso livello di controllo degli accessi o protezione contro gli utenti malintenzionati dei tuoi sistemi, non sono certificati allo stesso livello che hai (nel qual caso sei probabilmente obbligato a considerarli non affidabili), o semplicemente vuole ridurre la superficie di attacco per potenziali hacker. Questa è una decisione architettonica chiave che guiderà molte altre cose, ad esempio come esegui i test di penetrazione.

Una volta che hai deciso quali componenti del sistema sono attendibili e quali sono non affidabili, dovresti assicurarti che tutti i sistemi sotto il tuo controllo convalidino ogni singolo pezzo di dati proveniente da una fonte non affidabile, preferibilmente contro una lista bianca. Quindi, se hai un elenco di possibili URL che sono consentiti e puoi validarlo, allora sì, puoi consentire loro di passare l'URL, a patto che tu lo convalidi. Se non riesci a trovare una lista bianca, potrebbe essere accettabile utilizzare un'espressione regolare o una comprovata libreria di codici per eseguire la scansione dell'URL per sequenze pericolose. Se non puoi fare nessuno dei due, potrebbe non essere una buona idea permettere che quell'URL sia passato.

Se c'è un modo per rappresentare l'URL in un altro modo - per esempio, se ci sono dieci possibili URL e il client può semplicemente passare un numero compreso tra 1 e 10 che indica quale URL vogliono-- questo eviterebbe questo intero problema completamente.

    
risposta data 10.04.2018 - 03:43
fonte

Leggi altre domande sui tag