GithubHelp home page GithubHelp logo

Comments (4)

rkh avatar rkh commented on June 9, 2024

How would such a method be provided? We could add a helper to Sinatra, but in general?

from rack-protection.

rkh avatar rkh commented on June 9, 2024

Please reopen ticket with Sinatra or whatever you're using.

from rack-protection.

arixey avatar arixey commented on June 9, 2024

The source of this issue actually seems to be when session[:csrf] is generated from random_string initially within "accepts?". "accepts?" will fail once but in this POST method it generates random_string that assigns to session[:csrf] that had already effectively assigned nil to params['authenticity_token'] back at the GET. The second time through "accepts?" works more as expected. Maybe there is somewhere to generate session[:csrf] during the GET and not the POST seemingly similar to "session_id" and "tracking".

from rack-protection.

arixey avatar arixey commented on June 9, 2024

For example, we can do something like

<input name="authenticity_token" value="<%= session[ :csrf ] ||= SecureRandom.hex( 32 ) %>" 
    type="hidden" />

or an equivalent helper to kick it off. This example assumes SecureRandom. Base.random_string is agreeably a better place than a helper for that, and I think why the original issue opener wanted the token method. However, I think having session[ :csrf ] generated in the same pass as session[ :tracking ] keeps rack-protection out of the view helper business.

from rack-protection.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.