Jak zapobiec temu problemowi Google podczas indeksowania witryny? Nie jestem zainteresowany wyłączeniem "protect_from_forgery", chyba że jest to bezpieczne.Googlebot powoduje nieważne żądanie Cross Origin Request (COR) w Rails 4.1
[fyi] method=GET path=/users format=*/* controller=users action=show status=200 duration=690.32 view=428.25 db=253.06 time= host= user= user_agent=Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) session= params={""}()
[hmm] Security warning: an embedded <script> tag on another site requested protected JavaScript. If you know what you're doing, go ahead and disable forgery protection on this action to permit cross-origin JavaScript embedding. (pid:)
[fyi] method=GET path=/users/123/flag format=*/* controller=users action=flag status=500 error='ActionController::InvalidCrossOriginRequest:Security warning: an embedded <script> tag on another site requested protected JavaScript. If you know what you're doing, go ahead and disable forgery protection on this action to permit cross-origin JavaScript embedding.' duration=26.50 time= host= user= user_agent= session= params= (pid)
[omg] ActionController::InvalidCrossOriginRequest (Security warning: an embedded <script> tag on another site requested protected JavaScript. If you know what you're doing, go ahead and disable forgery protection on this action to permit cross-origin JavaScript embedding.):
actionpack (4.1.4) lib/action_controller/metal/request_forgery_protection.rb:217:in `verify_same_origin_request'
Sterownik reaguje z tym
respond_to do |format|
format.js { render template: 'users/flag', layout: "some_layout" }
end
jestem w stanie odtworzyć błąd i wydaje się działać prawidłowo, kiedy mogę to zrobić za pośrednictwem mojej przeglądarce
Dotychczas Sprawdziliśmy następujące zasoby, ale większość wydaje się sugerować jedynie ślepe obracanie CSRF lub brak odpowiedzi.
- Using layout specific javascript in comfy leads to InvalidCrossOriginRequest
- Invalid Cross Origin Request After Upgrading to Rails 4.1
- How to avoid ActionController::InvalidCrossOriginRequest exception?
- Googlebot asks for png and then my whole Heroku site crashes. What is going on?
- https://github.com/rails/rails/pull/13345
- http://myownpirateradio.com/tag/rails-authentication-token/
- https://gist.github.com/aishek/8535082
- Why does Google prepend while(1); to their JSON responses?
- http://www.tsheffler.com/blog/?p=428
- http://edgeapi.rubyonrails.org/classes/ActionController/RequestForgeryProtection.html
Dla wyjaśnienia: Działanie powinno być chronione przed CSRF, ale chcę, aby uniemożliwić Google indeksowanie go lub wygeneruje błąd indeksowania strony. Tj.) Chcę, aby fałszywe pozytywne ostrzeżenia o zabezpieczeniach zniknęły bez faktycznego naruszenia moich funkcji bezpieczeństwa.
Zamawianie jest ważne tutaj. format.html powinien pojawić się przed format.js w bloku respond_to. – sma
Występuję w tym samym problemie, a kroki do odtworzenia opisane w rozwiązaniu nie zadziałały, dopóki nie zmieniłem nagłówka na '-H" Accept: */* "', w którym momencie mogę teraz odtworzyć błąd. –