2013-07-06 5 views
4

У меня есть веб-приложение, построенное с использованием CodeIgniter 2, я включил в него защиту CSRF. $config['csrf_protection'] = TRUE; Мой друг создает мобильное приложение для него, поэтому ему нужен API для связи с веб-приложением. Я создал RESTful API в CI, используя this tutorial. Весь запрос, сделанный мобильным приложением, - это запрос POST. Проблема, с которой я столкнулся, заключается в том, что защита CSRF включена, а запрос POST, сделанный с мобильного, не несет никакого «токена CSRF», поэтому он бросает 500 internal server error. Однако если я отключить CSRF защита все работающий нормально. Каков правильный способ его реализации? Должен ли я генерировать токен на самом мобильном? Или я должен добавить исключение для защиты CSRF? Если да, то как я могу это сделать? потому что я не хочу отключать защиту CSRF.Создание API для веб-приложений с помощью защиты CodeIgniter CSRF

ответ

6

выписка реализация CSRF в CodeIgniter от net.tutsplus.com.

Я надеюсь, что будет решить вашу проблему. если вы правильно реализовать, чем написать это внутри вас config.php

if (isset($_SERVER["REQUEST_URI"])) 
{ 
    if(stripos($_SERVER["REQUEST_URI"],'/mypage') === FALSE) 
    { 
     $config['csrf_protection'] = TRUE; 
    } 
    else 
    { 
     $config['csrf_protection'] = FALSE; 
    } 
} 
else 
{ 
    $config['csrf_protection'] = TRUE; 
} 
+1

Спасибо, но мне нужна помощь в создании исключения для DISABLE CSRF для некоторого запроса, генерирующая CSRF не является проблемой. Пожалуйста, внимательно прочитайте вопрос. – Shivam

+0

Я обновил ответ, проверьте его сейчас –

+0

Спасибо, но где я должен поместить этот код? – Shivam

Смежные вопросы