Опитвам се да намеря дали има добър начин за предотвратяване на CSRF на джаджа за JavaScript, вградена в уебсайтове на клиенти.
Джаджата би позволила на крайните потребители да правят заявки към акаунтите на нашите клиенти чрез JSONP към PHP сървър, който изпраща тези заявки към нашия (непубличен) API.
До този момент не съм измислил сигурен начин да гарантирам, че всички заявки идват само от уебсайтовете на нашите клиенти. Някои идеи, които имах:
- Токени, генерирани от страна на сървъра и предадени обратно заедно с всяка следваща JSONP заявка (обаче не съм сигурен как да удостоверя първоначалната заявка, тъй като първият токен ще може да се чете в JS и всеки може да поиска „следващия“ токен)
- Проверка на заглавката Referer (ненадеждна, може да бъде подправена или просто да не бъде предадена от браузъра)
- Използването на SSL (разбира се, ще помогне, но не и ще реши проблема с CSRF)
Това изобщо възможно ли е? Попаднах на приспособлението на Fotomoto, което изглежда позволява същия тип функционалност, която търсим, но не съм сигурен как го правят.