CSRF-токен Spring Security - могу ли я использовать чистую HTML или мне нужна JSP? - PullRequest
0 голосов
/ 25 апреля 2020

Не могли бы вы сказать, есть ли способ использовать токены CSRF Spring Security - внутри pure HTML (не JSP)? Мои старые приложения используют JSP и легко получают токен CSRF Spring Security:

    <%-- index.jsp: --%>
    <form method="post"...>
      <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/>
     ...
    Or:
    <head>
      <meta name="_csrf" content="${_csrf.token}"/>
      <meta name="_csrf_header" content="${_csrf.headerName}"/>
      ...

Теперь компания, в которой я работаю, хочет перейти на чистый HTML без шаблонов:

     <!-- index.html: -->
     <html>
     ...
     Pure <form> and javascript, but how can we receive CSRF here?

Мы в компании - старожилы и новички в этом, консультант только что сказал нам, что JSP устарел, и современные команды должны использовать чистые страницы ". html", которые передняя группа может тестировать без работающего сервера. , Мы открыты для попыток, но у консультанта нет опыта CSRF, и он не может помочь в этом.

Спасибо.

1 Ответ

0 голосов
/ 25 апреля 2020

Thymeleaf является соображением для вашего сценария. Одна из его особенностей заключается в том, что вы можете создавать прототипы, используя чистый HTML, но это все еще традиционная страница, отображаемая на стороне сервера, как JSP. Это означает, что вы можете открыть html напрямую, но при этом развернуть на сервере динамическое содержимое c.

При использовании CSRF Thymeleaf автоматически сделает скрытый ввод данных в ваши формы. Но вы также можете по-прежнему иметь токены CSRF в метатегах.

Теперь, если вы переходите на чистый HTML / JS с помощью SPA, подобного React, Vue, Angular et c. вам необходимо перенести защиту CSRF с помощью файлов cookie через CookieCsrfTokenRepository или Spring Security с конечной точкой REST , которая позволяет получить CSRF через XHR.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...