2013-03-06 3 views
1

Я хочу войти в систему page с php: Но я получаю ошибку, когда пытаюсь войти с php.login instagram с php curl

При попытке войти в систему под кодом код всегда меняется. Поэтому я не могу войти.

Код:

<input type="hidden" name="csrfmiddlewaretoken" value="728a44ea6f15dee51406b0c82be3a03b"/> 

Спасибо за авансовую помощь

+1

Это CSRF маркер меняется по уважительной причине. Почему бы вам не использовать функциональность Instagram OAuth? http://instagram.com/developer/authentication/ – richsage

+1

Я считаю, что это противоречит их условиям использования, используйте их api –

ответ

0

Вы должны открыть страницу с формой и прочитать значение «csrfmiddlewaretoken» в вар (с регулярным выражением, например).

Вам также необходимо сохранить файл cookie сеанса (у curl есть способ хранения файлов cookie в файле контейнера или вы можете сделать это самостоятельно, проанализировав заголовки ответов и сохраните значение cookie, чтобы установить его в заголовок запроса позже Запросы).

Затем вы можете установить «csrfmiddlewaretoken» в своем запросе на вход (который должен отправить файл cookie сеанса).

1

Очевидно, что Instagram защищен от подделки подпроса. Вы можете прочитать все об этой атаке here.

Фактически ребята Instagram не хотят, чтобы вы отправляли форму для входа, не показывая ее в первую очередь. Это то, что csrfmiddlewaretoken предназначено для: Они дают его вам (случайное значение), когда форма отображается, и когда вы ее отправляете, они проверяют, вернули ли вы тот, который они вам дали. См. OWASP cross-site request forgery prevention cheat sheet.

Таким образом, в основном вам нужно запросить форму входа в систему, получить от нее токен и затем войти в второй запрос и включить в него этот токен.

(Может быть, они делают некоторые перепроверки там, в этом случае вам придется отправить маркер дважды: как в ваших почтовых данных и, как печенье.)