JSONP ist in Fachkreisen als Lösung zum Umgehen der SOP durchaus umstritten, was vor allem auf das erhöhte Sicherheitsrisiko zurückzuführen ist, das mit den Skript-Abfragen verbunden ist. Hierfür sorgt schon allein die Tatsache, dass eine zusätzliche Komponente in die Prozesse der Herkunfts-Website eingebunden wird, deren Sicherheitssystem nicht beeinflussbar ist. Weist nämlich der kontaktierte Server Schwachstellen auf, die unerwünschte JavaScript-Injections (Einbindung von JavaScript-Code) durch Angreifer möglich machen, ist automatisch auch der Herkunftsserver einer unmittelbaren Gefahr ausgesetzt – insbesondere, da nicht nur JSON-Dokumente (wie im Beispiel), sondern jegliche Art von Daten abgerufen werden können.
Weitere bekannte Angriffsmuster, die sich die JSONP-Methode zunutze machen, sind folgende:
- RFD (Reflected File Download): JSONP ist anfällig für sogenannte RFD-Angriffe, bei denen Client-Nutzer nur scheinbar Daten von der gewünschten Ziel-Domain herunterladen. Tatsächlich werden allerdings schädliche Dateien oder URLs geladen, was in den meisten Fällen auf eine Manipulation von Callback-Funktionen zurückzuführen ist.
- CSRF/XSRF (Cross-Site-Request-Forgery): Da das script-Element die Same-Origin-Policy ignoriert, kann eine schädliche Website Daten anderer Webanwendungen anfordern, erhalten und auswerten. Ist der Nutzer auf der angegriffenen Seite angemeldet, könnten Angreifer mit solchen „gefälschten“ domainübergreifenden Requests an sensible Daten wie Log-in-Informationen gelangen.
Wer JSONP-Skripte im eigenen Webprojekt verwenden möchte, der sollte also absolut sicher sein, dass nicht nur der eigene, sondern auch der Webserver der kontaktierten Webanwendung gegen derartige Angriffe und jegliche Art von Malware geschützt ist. JSONP-Code, der Daten von unsicheren Quellen abruft, sollte man dementsprechend nicht einbinden bzw. nicht zulassen.