Ruby on rails ActionController::PostsController中的InvalidAuthenticationToken#创建
在我的rails博客应用程序中,我在尝试提交新帖子的表单时收到以下错误消息: ActionController::PostsController中的InvalidAuthenticationToken#创建 ActionController::InvalidAuthenticationToken 提取的源(在第211行附近): 这是我的posts_controller.rb文件:Ruby on rails ActionController::PostsController中的InvalidAuthenticationToken#创建,ruby-on-rails,ruby,ruby-on-rails-5.2,Ruby On Rails,Ruby,Ruby On Rails 5.2,在我的rails博客应用程序中,我在尝试提交新帖子的表单时收到以下错误消息: ActionController::PostsController中的InvalidAuthenticationToken#创建 ActionController::InvalidAuthenticationToken 提取的源(在第211行附近): 这是我的posts_controller.rb文件: class PostsController < ApplicationController def ind
class PostsController < ApplicationController
def index
end
def new
end
def create
@post=Post.new(post_params)
@post.save
redirect_to @post
end
def show
@show=Post.find(params[:id])
end
private
def post_params
params.require(:post).permit(:title,:body)
end
end
class PostsController
这是我的表格代码:
<font color="#BD004B"><h1>New Post<br></h1></font>
<%=form_for :post, url: posts_path do |f|%>
<p>
<%=f.label :title%><br>
<%=f.text_field :title%>
</p>
<p>
<%=f.label :body%><br>
<%=f.text_area :body%>
</p>
<p>
<%=f.submit%>
</p>
<%end%>
新帖子
正如其他人指出的那样,跳过验证真实性\u令牌
不是一个选项,会在应用程序的安全性上打开一个大漏洞
异常通常出现在两种情况下:您的会话已用完,我们的表单通过ajax发送,没有csrf_meta_标记
该问题的propper解决方案是拯救异常并重置用户会话,如下所示:
rescue_from ActionController::InvalidAuthenticityToken do
logger.info "Compromised session found."
reset_session
flash[:error] = "You're session has expired"
redirect_to root_path # or new_user_session_path
end
正如其他人指出的,跳过
verify_authenticity\u token
不是一个选项,会在应用程序的安全性上打开一个大漏洞
异常通常出现在两种情况下:您的会话已用完,我们的表单通过ajax发送,没有csrf_meta_标记
该问题的propper解决方案是拯救异常并重置用户会话,如下所示:
rescue_from ActionController::InvalidAuthenticityToken do
logger.info "Compromised session found."
reset_session
flash[:error] = "You're session has expired"
redirect_to root_path # or new_user_session_path
end
能否共享表单的代码?它可能是视图中缺少的部分,也可能是控制器中缺少的回调方法,该方法跳过了post/put/delete请求的真实性操作。因此,请按照@D1ceWard的要求,请共享视图代码,我也希望看到
应用程序\u controller.rb
代码。@D1ceWard我已经发布了表单code@radoAngelov我已经把表格寄出去了code@radoAngelovskip\u-before\u操作:验证\u真实性\u令牌
跳过令牌验证,这是一个安全问题,顺便说一句,不是一个解决方案,我们需要更多的信息,比如新/_表单的全部内容,与post和rails版本相关的路由,因为现在一切看起来都很好。您可以共享表单的代码?它可能是视图中缺少的部分,也可能是控制器中缺少的回调方法,该方法跳过post/put/delete请求的真实性操作。因此,请按照@D1ceWard的要求,请共享视图代码,我也希望看到应用程序\u controller.rb
代码。@D1ceWard我已经发布了表单code@radoAngelov我已经把表格寄出去了code@radoAngelovskip\u-before\u操作:验证\u真实性\u令牌
跳过令牌验证,这是一个安全问题,顺便说一句,不是一个解决方案,我们需要更多的信息,比如新/_表单的全部内容,路由与post和rails版本相关,因为目前一切看起来都很好。我将其从我的应用程序_controller.rb
文件中删除,并且我的应用程序的功能没有差异,因此我将其保留。我将其从我的应用程序_controller.rb
文件中删除,并且我的应用程序的功能没有差异,因此我不说了