Установить флаг httpOnly для токена CSRF в Laravel

Я создаю приложение в Laravel 5.1 для клиента. После того, как я закончил приложение, я получил отчет о пентесте, который говорит мне, чтобы добавить флаг HttpOnly.
Я добавил ‘secure’ => true и ‘http_only’ => true в app / config / session.php. Флаг httpOnly устанавливается для всех сеансов, кроме сеанса XSRF-TOKEN. Как я могу установить этот флаг?

4

Решение

Вы можете перезаписать метод addCookieToResponse ($ request, $ response) в App \ Http \ Middleware \ VerifyCsrfToken

/**
* Add the CSRF token to the response cookies.
*
* @param  \Illuminate\Http\Request  $request
* @param  \Illuminate\Http\Response  $response
* @return \Illuminate\Http\Response
*/
protected function addCookieToResponse($request, $response)
{
$response->headers->setCookie(
new Cookie('XSRF-TOKEN',
$request->session()->token(),
time() + 60 * 120,
'/',
null,
config('session.secure'),
false)
);

return $response;
}

И не забудьте добавить

use Symfony\Component\HttpFoundation\Cookie;
10

Другие решения

Не существует такой вещи, как флаг httpOnly для токена CSRF, только для файлов cookie.

Нам нужна дополнительная информация, например, ошибка, которую вы получаете, или какой-то код, как вы устанавливаете токен CSRF и т. Д.

И что вы подразумеваете под сеансом XSRF-TOKEN? Сеанс привязан к пользователю, посещающему сайт, а не к токену.

0

По вопросам рекламы [email protected]