Tag: 安全性

公共文件夹中的文件是否可以被外界访问? – 铁路

这是一个简单的问题,但我似乎无法在任何地方找到答案。 如果您在public目录中存储了一些文件(比如一些静态PDF),那么有人无权查看这些文件,可以通过输入一个URL来查看它们,例如example.com/public/static_document.pdf ? 如果是这样,你可以在Rails中禁用它吗?

通过rails上的表单防止链接垃圾邮件

我们的rails应用程序允许未登录的用户创建消息对象的消息注册用户,将其存储在我们的数据库中,然后将内容通过电子邮件发送给注册用户。 在我们的暂存应用程序中,我们已经开始从抓取我们网站的机器人收到大量垃圾邮件。 我们担心两件事: 给用户带来的不便 SQL注入或我们没有考虑的任何其他安全漏洞可能会在此上下文中发生 有什么好方法可以解决这个问题? 我知道我们可以实现validation码系统,但从用户体验的角度来看这并不理想。 我们还可以阻止中国(或者攻击源自哪里)的地方的IP,但我们也可能希望为中国的用户提供服务。 此外,我相信rails具有内置function来清理查询字符串并防止SQL注入,但默认情况下是否启用? 在这种情况下,还有其他我们应该关注的事情是防止导轨默认不处理吗? 有什么建议?

救援ActionController :: BadRequest

我正在运行一个rails应用程序,我有一个简单的show动作,其代码如下所示: @post = Post.find(params[:id]) 因此,如果你去post/ 1例如你会看到post,如果有的话。 我可以捕获无效的params [:id]或无效的params,但我发现了一些奇怪的东西。 昨天有人试图传递给我的东西如下: +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++Result:+%ED%E5; 我收到一个ActionController错误的请求exception。 当我访问url / posts / +++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++结果:+%ED%E5; 我看到一个空白页而不是我遇到的类似错误的典型404。 我也注意到,使用param它没有进入posts控制器show action,要么是应用程序控制器(我也试图从那里拯救它)。 我想这是我的一些gem的机架exception,我不知道如何拯救它。 这是我的整个错误回复: Started GET “/blog/+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++Result:+%ED” for 192.168.1.105 at 2014-03-18 09:45:42 +0200 ActionController::BadRequest (ActionController::BadRequest): actionpack (4.0.2) lib/action_dispatch/routing/route_set.rb:37:in `block in call’ actionpack (4.0.2) lib/action_dispatch/routing/route_set.rb:33:in `each’ actionpack (4.0.2) lib/action_dispatch/routing/route_set.rb:33:in `call’ actionpack (4.0.2) lib/action_dispatch/journey/router.rb:71:in `block in call’ actionpack (4.0.2) […]

在rails应用程序中放置安全密码/密钥的位置?

我有一些Web服务需要传入安全的令牌/密钥/密码。我应该在哪里为rails应用程序定义这些安全值? 我想在版本控制中使用开发键,但不希望生产键在版本控制中。 我该如何设置? 我是铁杆新手。

Rails安全性:完全避免批量分配

我倾向于不需要生产代码中的质量分配function。 (在我的测试代码中,我经常使用它,但在这些情况下,我确实想要设置任意列。) 因此,如果在我的生产代码中,我只是避免使用这些forms: Article.new(params[:article]) # or create article.attributes = params[:article] article.update_attributes(params[:article]) 而是始终手动枚举所有属性,如下所示: Article.new(:title => params[:article][:title], :body => params[:article][:body], …) 我是否从质量分配安全问题中attr_accessible attr_protected (即使不使用attr_accessible / attr_protected )? 编辑:我不只是禁用批量分配的原因是,我希望能够编写Article.create!(:blog_id => @blog.id, …) ,其中blog_id是一个“unsave”属性。

Rails秘密令牌

我很困惑在Rails中使用的secret_token是什么。 任何人都可以解释它的用途吗? 将此令牌放入公共源存储库并在生产中使用它是否可以,或者我应该在部署应用程序之前更改它以防止某些类型的攻击?

如何保护Rails应用程序免受Firesheep的攻击?

我还没有找到一个简单的指南来保护Ruby on Rails应用程序对Firesheep 。 如果你不知道,如果你的应用程序没有强制SSL并在cookie中设置安全标志,Firesheep会议会话cookie。 我不得不做一些搜索才能找到这两件事,所以我想我会发布我在这里找到的东西,看看是否还有其他我想念的东西。 步骤1强制SSL 我发现有两种方法可以做到这一点。 一个是使用ssl_requirement插件,但这很痛苦,因为你必须在每个控制器中专门指定ssl_required :action1, :action2 。 最好的方法似乎是使用Rack Middleware,通过这篇文章: 在Rails 2应用程序中使用ssl_requirement强制SSL 。 奇迹般有效。 第2步使cookie安全 为此我遵循了这些指示 ,告诉您将以下内容放在config/environment/production.rb文件中: config.action_controller.session = { :key => ‘name_of_session_goes_here’, :secret => ‘you need to fill in a fairly long secret here and obviously do not copy paste this one’, :expire_after => 14 * 24 * 3600, #I […]

如何在Heroku上阻止或过滤IP地址?

有没有办法实现IP过滤或IP访问规则,就像我使用nginx / apache来限制或阻止Heroku上的某些IP一样? 注意:我知道这可以在我的应用程序(Rails 3.2)中轻松完成,但我不认为这是Heroku上最有效的资源使用。 此外,基于Rack的解决方案比在Rails中实现过滤更好。

如何在不访问HTTP层的情况下模仿浏览器X509客户端证书validation

我正在通过X509客户端证书阅读有关身份validation的文章,但由于我在Heroku上运行应用程序,因此无法让服务器请求客户端证书,因此我无法访问HTTP层。 我在Stackoverflow上看到了对类似问题的回复,该问题表示使用自定义标头。 我想模仿使用自定义标头的应用程序服务器validation客户端证书。 我正在使用Ruby,所以如果有人知道已经完成此任务的库,那将会有所帮助。 否则,是否可能,我需要什么资源? 我发现了这个问题,但它是关于validationSSL证书,我不确定是否适用。 对于这个问题的模糊性我很抱歉,但我正处于这个问题的起点。

从OAuth安全存储令牌/秘密/等的正确方法?

我刚开始研究OAuth,它看起来非常好。 我现在正和ruby 一起工作 。 现在我想知道,在本地数据库和会话中存储响应的建议安全方法是什么? 我应该存储什么? 我应该在哪里存放? 此示例twitter-oauth-with-rails应用程序在会话中存储user.id ,用户表具有token和secret 。 但这似乎很容易通过传递大量测试用户ID来破解和获取秘密,不是吗?