Я создаю приложение в Laravel 5.1 для клиента. После того, как я закончил приложение, я получил отчет о пентесте, который говорит мне, чтобы добавить флаг HttpOnly.
Я добавил ‘secure’ => true и ‘http_only’ => true в app / config / session.php. Флаг httpOnly устанавливается для всех сеансов, кроме сеанса XSRF-TOKEN. Как я могу установить этот флаг?
Вы можете перезаписать метод 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;
Не существует такой вещи, как флаг httpOnly для токена CSRF, только для файлов cookie.
Нам нужна дополнительная информация, например, ошибка, которую вы получаете, или какой-то код, как вы устанавливаете токен CSRF и т. Д.
И что вы подразумеваете под сеансом XSRF-TOKEN? Сеанс привязан к пользователю, посещающему сайт, а не к токену.