/ / Laravel CSRF scraping - php, laravel, session, csrf, csrf-protection

Laravel CSRF скребком - php, laravel, session, csrf, csrf-protection

Мені просто цікаво, скільки насправді додає захист CSRF від laravel.

Виправте моє, якщо я тут помиляюся, але не змогли ви просто скребте вміст сторінки, як тільки ви один раз придбали сеанс?

Laravel захоплює маркер CSRF, пов'язаний з сеансом, і додає його до сторінки як метатаг для запитів AJAX.

<meta name="csrf-token" content="{{ csrf_token() }}">

https://laravel.com/docs/5.4/csrf#csrf-x-csrf-token

Звичайно, ви можете видалити метатег, якщо вам не потрібен функціонал AJAX, але нехай "скажіть, просто ви не хочете".

Як тільки у вас буде сесія на місці CSRFзалишиться тим самим для сеансу. Звичайно, хтось має багато працювати над тим, як налаштувати, але хіба це не можливо вирішити маркер CSRF? Я думаю, це все ще допомагає мати шар захисту, який запобігає надзвичайно легко copy/paste Атаки CSRF.

Просто цікаво, сподіваємось, хтось може розширити це.

Редагувати:

Я знаю, як працює ЦСРР, люди плутають, якLaravel має справу з CSRF щодо того, як вони очікують, що він буде працювати. Люди очікують, що маркер CSRF відновлюється за запитом, але це не так з Laravel:

https://github.com/illuminate/session/blob/master/Store.php#L72

Я також не бачу, як ви зможете перевірити запити AJAX CSRF, якщо до речі, ви не хочете зберігати ваш маркер CSRF для декількох запитів.

Nevermind знайшов відповідь:

https://security.stackexchange.com/questions/22903/why-refresh-csrf-token-per-form-request

Це іде в глибину, чому генерування токена CSRF для кожного запиту є поганою ідеєю.

Відповіді:

0 для відповіді № 1

ви тут добре подумали. Але з посиланням на відповідь на це питання.

Чи можливо порушити перевірку токенів CSRF за допомогою file_get_contents в PHP

Навіть якщо хтось записує та витягує маркер csrf, йому знадобиться ще один http-запит, який взамін створить ще один маркер. Тож усі зусилля будуть марними.

Примітка: Я поставив це у розділі відповідей, тому що мені не вистачає репутації, щоб розмістити його в коментарях. Спасибі