Heim  >  Fragen und Antworten  >  Hauptteil

Verbesserung der CSRF-Token-Verwaltung für AJAX in Laravel 9+: Best Practices

<p>Im Kontext von Laravel 9+ müssen AJAX-Anfragen CSRF-Tokens offenlegen, um die notwendigen Sicherheitsmaßnahmen sicherzustellen. Allerdings können unterschiedliche Token-Platzierungsmethoden die Eleganz und Organisation Ihres Codes beeinträchtigen. Die beiden wichtigsten Methoden sind wie folgt:<br /><br />Methode 1: Direktes Einfügen des CSRF-Tokens über die Blade-Syntax<br /><br />Bei dieser Methode werden die CSRF-Token-Karten verwendet werden über die Blade-Syntax direkt in JavaScript eingebettet. (Den gleichen Code an mehreren Stellen wiederholen)</p><p><br /></p> <pre class="brush:js;toolbar:false;">$(document).ready(function() { $.ajaxSetup({ Überschriften: { 'X-CSRF-TOKEN': "{{ csrf_token() }}" } }); }); </pre> <p>Während dieser Ansatz das Token außerhalb des HTML-Textes hält, erfordert er die Verwendung der Blade-Syntax in der JavaScript-Datei, was die Trennung von Belangen erschwert. <br /><br />Methode 2: CSRF-Token aus Meta-Tag extrahieren<br /><br />Bei dieser Methode wird das CSRF-Token im HTML-Meta-Tag platziert und dann zur Verwendung extrahiert im AJAX-Setup. </p><p><br /></p> <p><code><meta name="csrf-token" content="{{ csrf_token() }}"> <pre class="brush:js;toolbar:false;">$(document).ready(function() { $.ajaxSetup({ Überschriften: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } }); }); </pre> <p>Obwohl bei diesem Ansatz die Token im HTML-Code offengelegt werden (was sie ohnehin offengelegt würden), vereinfacht er die Verwaltung und Wiederverwendung von JavaScript-Dateien und erleichtert die Trennung von Code und Anliegen. <br /><br />In Anbetracht des oben Gesagten denke ich, dass Ansatz 2 besser ist, da er eleganter ist und eine bessere Trennung der Anliegen ermöglicht. Oder gibt es in Laravel andere Best Practices für die Verwaltung der CSRF-Token-Platzierung bei der Verwendung von AJAX-Anfragen, um ein besseres Gleichgewicht zwischen Sicherheit und Code-Organisation zu gewährleisten? Ich freue mich auf Ihre Erkenntnisse. <br /><br />PS: Ich habe mir z. B. https://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.html angesehen, aber einiges davon ist für mich unverständlich. </p><p><br /></p>
P粉242741921P粉242741921462 Tage vor466

Antworte allen(1)Ich werde antworten

  • P粉988025835

    P粉9880258352023-08-09 12:22:40

    令牌只对你希望拥有它的用户暴露(这样他们才能将其发送回给你)。

    它不会暴露给任何攻击者。(除非他们以某种方式破坏了服务器和浏览器之间的通信,这意味着他们已经获得比成功的CSRF攻击更多的访问权限。)

    选择直接的选项。


    Antwort
    0
  • StornierenAntwort