У Play Framework ми можемо застосувати глобальну перевірку CSRF
@SuppressWarnings({ "rawtypes", "unchecked" })
@Override
public <T extends EssentialFilter> Class<T>[] filters() {
Class[] filters = { CSRFFilter.class };
return filters;
}
Що добре в більшості випадків. Але я хочу налаштувати сторінку Canvas у Facebook, яка вказує на наш веб-сайт. Річ у тому, що Facebook надсилає POST-запит на наш сайт, і це заважає чекові CSRF. Це завжди повертається "Недійсний маркер CSRF"
Тому я хочу вибірково відключити перевірку CSRF у деяких діях, наприклад, www.ourwebsite.com/canvas
Це можливо?
Відповіді:
6 за відповідь № 1Я створив публікацію в блозі про те, як це зробити, дивіться тут:
http://dominikdorn.com/2014/07/playframework-2-3-global-csrf-protection-disable-csrf-selectively/
2017-оновлення: Починаючи з PlayFramework 2.6, це тепер включено до самого Framework: https://www.playframework.com/documentation/2.6.x/JavaCsrf#applying-a-global-csrf-filter