rails安全性

如果你发布你的blog。那么其他人就可以随便修改和添加博客了。


Rails提供了一个非常简单的http认证系统,可以非常有帮助的解决这种情况。

PostsController里面我们需要一个方法阻止那些没有授权的用户的操作。

这时候我们可以使用http_basic_authenticate_with 方法。

这个方法通过的情况下才能处理http请求。


我们的例子里面需要除了index,show之外的方法都需要认证。

  1. class PostsController < ApplicationController  
  2.    
  3.   http_basic_authenticate_with :name => "dhh", :password => "secret", :except => :index  
  4.    
  5.   # GET /posts  
  6.   # GET /posts.json  
  7.   def index  
  8.     @posts = Post.all  
  9.     respond_to do |format|  
  10. # snipped for brevity  


我们也需要删除评论的时候需要权限。

  1. class CommentsController < ApplicationController  
  2.    
  3.   http_basic_authenticate_with :name => "dhh", :password => "secret", :only => :destroy  
  4.    
  5.   def create  
  6.     @post = Post.find(params[:post_id])  
  7. # snipped for brevity  


现在我们如果创建一个新的post。将会显示下面的页面。

posted @ 2013-08-08 13:54  wangyuyu  阅读(265)  评论(0编辑  收藏  举报