Tag: 安全

ruby咬了一下

我想创建一个包含给定用户的安全权限的位。 在c#中,我会通过创建一个枚举来做到这一点,然后我会对二进制值进行一些操作,通过和’&&’来查看它是否会产生一个TRUE值。 我怎样才能在Ruby中做到最好?

使用authlogic_api进行Rails REST API访问

我正在为只能通过REST调用访问的Steam游戏编写Rails后端API,因此不需要特定于用户的身份validation。 我正在尝试为Authlogic gem实现authlogic_api插件 ,该插件使用api_key / signature机制来限制访问。 我已经实现了rdocs中概述的ApplicationSession和ApplicationAccount模型,但我不确定如何修改我的ApplicationController以限制访问。 查看源代码,authlogic_api插件似乎修改了Authlogic中的ActsAsAuthentic和Session模块。 但由于这实际上是“单一访问”身份validation,要求在每次请求时传递API密钥和签名,我不会看到会话如何成为一个因素。 有没有人在他们的应用程序中成功实现了authlogic_api? 如果是这样,您会分享设置ApplicationController的方法吗?

为什么切割params散列会对质量分配造成安全问题?

通过批量分配来防止安全风险的官方方法是使用attr_accessible 。 但是,一些程序员认为这不是模型的工作(或者至少不仅仅是模型的工作)。 在控制器中执行此操作的最简单方法是切割params哈希: @user = User.update_attributes(params[:user].slice(:name)) 但是文档说明: 请注意,使用Hash#except或Hash#slice代替attr_accessible来清理属性将无法提供足够的保护。 这是为什么? 为什么白名单切片的params不能提供足够的保护? 更新: Rails 4.0将发布强参数 ,一个精细的参数切片,所以我猜整个切片的事情毕竟不是那么糟糕。

API Key +密钥签名的Rails插件

是否有一个Rails插件或rubygem为您提供了一个为您的Rails应用程序添加api的起点? 我们想要使用API​​ Key / Secret Key模型,API也应该是可版本化的。 有什么东西可以给我们一些,如果不是全部的话?

哪种脚本语言更适合笔测试?

首先,我想避免对语言进行激烈的战争。 可供选择的语言是Perl,Python和Ruby。 我想提一下我对所有这些都感到满意,但问题是我不能只专注于一个。 例如,如果我看到一个很酷的Perl模块,我必须尝试一下。 如果我看到一个不错的Python应用程序,我必须知道它是如何制作的。 如果我看到一个Ruby DSL或一些Ruby voodoo,我会迷上Ruby一段时间。 现在我是一名Java开发人员,但计划在不久的将来接受CEH。 我的问题是:对于工具编写和漏洞利用开发,您认为哪种语言最合适? 再一次,我不想引起火焰战或任何麻烦,我只是想要知道他们正在做什么的脚本编写者的诚实意见。 还有一件事:也许你们中的一些人会问“为什么选择一种语言?”。 要回答这个问题:我想只选择一种语言,以便掌握它。

污染Ruby对象的目的是什么?

我知道将不受信任的对象标记为污染的可能性,但是根本目的是什么,为什么要这样做呢?

什么应该从Ruby on Rails中的公共源代码控制中删除?

我一直在网上搜索,我找不到任何好的/最近的例子,从新的公共rails应用程序中排除什么。 我想在GitHub上开源我的应用程序,我想知道应该从源代码控制中删除哪些类型的数据。 据我所知,应该有一个包含私人信息的config/config.yml文件。 我一直在查看其他文件,它看起来像config/database.yml , config/intializers/secret_token.rb和config/initializers/session_store.rb也应该被排除? 最佳做法是单独排除所有这些文件吗? 或者有没有办法在config/config.yml定义所有信息并在每个文件中调用? 此外,哪些文件和数据应保密并隐藏? 那是全部吗? 我只是想知道我应该采取什么方法以及最佳做法是什么。 谢谢你的帮助!

Ruby on Rails源代码安全/混淆

我刚刚开始使用Ruby on Rails开发,我有一个关于源代码“隐私”的问题。 根据我目前所知( 我尚未完成部署,仅在本地开发环境中使用RoR ),在部署RoR应用程序时,所有源代码在服务器上都是“可见的”? 我该如何保护我的代码; 可以这么说? 保护我的意思是,主要目的是某人( 例如RoR提供商的服务器管理员 )无法通过轻松搞清楚代码中的哪个地方来“破坏”代码。 像Shopify,Yellowpages等使用RoR的网站如何确保他们的代码不被“破坏”? 更新我真正想要的是,假设我有一些代码正在进行信用卡交易,我不希望一些流氓员工阅读“纯文本源代码”并破坏我的网站,比如通过阅读我的源代码然后向所有已注册用户收取10美元的费用。 我该如何防止这种事情发生?

有没有办法阻止Rails的内置服务器默认监听0.0.0.0?

我在不受信任的网络(coffeeshops,邻居的开放wifi,DEF CON)上进行了大量的网络开发,当随机,确定无人驾驶的软件(我开发的Rails应用程序,比如说)绑定0.0.0.0上的端口时,我会感到抽搐。开始接受所有人的请求。 我知道我可以用服务器的-b选项指定绑定的地址,但是我想全局更改默认值,所以它总是以这种方式运行,除非我告诉它。 当然我也可以运行某种阻止连接的防火墙,但最好不要先听。 是否存在’.railsrc’文件或类似文件 – 至少是每个项目的设置文件,但最好是一些全局设置文件 – 我可以使用它来强制服务器默认只绑定到127.0.0.1?

在Ruby中形成卫生shell命令或系统调用

我正在构建一个可以帮助我管理服务器的守护进程。 Webmin运行良好,就像打开服务器的shell一样,但我更喜欢能够从我设计的UI控制服务器操作,并向最终用户公开一些function。 守护程序将从队列中获取操作并执行它们。 但是,由于我将接受用户的输入,我想确保他们不被允许在特权shell命令中注入危险的东西。 这是一个例证我问题的片段: def perform system “usermod -p #{@options[‘shadow’]} #{@options[‘username’]}” end 一个解释更多的要点: https : //gist.github.com/773292 如果对这种情况进行典型的输入和消毒输入就足够了,我并不乐观,作为一名设计师,我没有大量与安全相关的经验。 我知道这对我来说应该是显而易见的 ,但事实并非如此! 如何确保将创建和序列化操作的Web应用程序无法将危险文本传递到接收操作的特权进程? 谢谢您的帮助 ARB