J'essaye de poster des données à partir d'un fichier html (fichier statique) sous public sans utiliser ERb of Rails.
Terminal.
Can't verify CSRF token authenticity.
Le fait est que "j'ai joué la demande car elle est différente du jeton de sécurité auquel je m'attendais."
Abréviation de Cross Site Request Forgery, l'une des tricheries.
Le fait qu'un attaquant envoie une requête au site cible en faisant cliquer la victime sur un lien ou visiter une page. En d'autres termes, l'attaquant peut s'authentifier en tant que requête valide et falsifier les informations de compte de la victime.
Par conséquent, Rails prend automatiquement des mesures pour éviter que des éléments malveillants ne soient confondus avec des requêtes normales.
Rails a déjà le code de contre-mesure CSRF automatiquement intégré dans application_controller.
application.controller.rb
protect_from_forgery with: :exception
Il introduit un jeton de sécurité requis qui est automatiquement inclus dans tous les formulaires générés par Rails et les demandes Ajax.
Si le jeton de sécurité ne correspond pas à la valeur attendue, une erreur peut se produire.
application_controller.rb
protect_from_forgery with: :null_session
Les mesures CSRF sont désactivées pour toutes les actions. Cependant, cela pose le problème d'être extrêmement vulnérable à l'agression.
En excluant uniquement les actions spécifiques qui reçoivent des API de l'extérieur, il est possible de recevoir des données de clients tout en assurant la sécurité.
feeds_controller.rb
protect_from_forgery :except => [:create, :index]
def create
end
def index
end
En spécifiant le nom de l'action du contrôleur, il est désormais possible de recevoir des données du fichier html sous public.
https://qiita.com/chobi9999/items/2b59fdaf3dd8f2ed9268
https://www.transnet.ne.jp/2016/10/26/%E3%80%8Cruby-on-rails%E3%81%AEcsrf%E5%AF%BE%E7%AD%96colnd/
https://railsguides.jp/security.html#%E3%82%AF%E3%83%AD%E3%82%B9%E3%82%B5%E3%82%A4%E3%83%88%E3%83%AA%E3%82%AF%E3%82%A8%E3%82%B9%E3%83%88%E3%83%95%E3%82%A9%E3%83%BC%E3%82%B8%E3%82%A7%E3%83%AA-csrf