草庐IT

安全验证

全部标签

ruby-on-rails - Ruby 为什么类实例变量是线程安全的

根据this回答是,但是张贴者说JRuby的工作方式不同所以我很困惑?我正在使用类实例变量实现Multi-Tenancy解决方案,因此无论我使用什么Ruby实现或Web服务器,我都需要确保数据不会泄露。这是我的代码:classTenant我需要做什么来确保无论发生什么(更改Ruby实现、更改Web服务器、新的Ruby线程功能等)我的代码都是线程安全的? 最佳答案 由于tenancy属性的范围是一个请求,我建议您将其保留在当前线程的范围内。由于一个请求是在单个线程上处理的,并且一个线程一次处理一个请求-只要您始终在请求开始时设置租期就

ruby - Office 365 Rest API - 守护进程周身份验证

我正在尝试构建一个Ruby守护进程服务来访问Office365restAPI。最近可以通过OAuth“client_credentials”流程来执行此操作,详见此博文:https://learn.microsoft.com/en-us/archive/blogs/exchangedev/building-daemon-or-service-apps-with-office-365-mail-calendar-and-contacts-apis-oauth2-client-credential-flow我正在努力生成有效的访问token。token端点返回一个JWT,但是当使用这个to

ruby-on-rails - 在属性 setter 可以类型转换之前进行验证

我有一个对象,它有一个名为value的属性,它是bigdecimal类型。在类定义中我有validates_numericality_of。但是如果我:a.value='fire''fire'最终在验证触发之前进行类型转换为正确的类型,因此:a.valid?=>true如何在类型转换之前触发验证?谢谢丹 最佳答案 来自ActiveRecord::Basedocs:Sometimesyouwanttobeabletoreadtherawattributedatawithouthavingthecolumn-determinedtype

ruby - ruby 中的线程安全外部进程,以及检查退出状态

我想在Ruby中运行一段调用外部程序的线程安全脚本,然后检查该外部程序的退出状态。最好的方法是什么?到目前为止,我一直在检查$?,但我认为我遇到了与程序其他部分的竞争条件。下面是一些示例代码:Thread.newdo`external_program`if$?.exitstatus==0#itworked.else#itdidn'twork.endend理想情况下,我会做类似的事情Process.new(`external_program`).exitstatus因此exitstatus与that进程密不可分,而不是恰好完成的最后一个进程。有什么办法吗? 最

ruby - Heroku 上 Rack::Static 应用程序的 HTTP 基本身份验证

我在Heroku上托管了一个简单的Rack应用程序。配置.ru:useRack::Static,:urls=>["/stylesheets","/images","/javascripts"],:root=>"public"runlambda{|env|[200,{'Content-Type'=>'text/html','Cache-Control'=>'public,max-age=86400'},File.open('public/index.html',File::RDONLY)]}如何向其中添加HTTP基本身份验证?如果它只适用于生产环境,则加分。谢谢

ruby-on-rails - 请求规范中的 stub 身份验证

我正在寻找做this的方法但在要求规范。我需要登录和注销double或instance_double来设计而不是实际的ActiveModel/ActiveRecord。通过使用wiki页面中的代码:moduleRequestSpecHelpersdefsign_in(user=double('user'))ifuser.nil?allow(request.env['warden']).toreceive(:authenticate!).and_throw(:warden,{:scope=>:user})allow(controller).toreceive(:current_user)

ruby-on-rails - Restful 身份验证的无意 session 劫持问题

我正在使用在github上找到的当前版本的restful_authentication,我遇到了一堆奇怪的session问题。服务器似乎以某种方式将session分配给不应该的用户。只有在越过注销/登录障碍时才会发生这种情况。这是一个例子。在服务器上没有事件session的情况下,我使用用户A登录帐户。在另一台计算机上,我使用用户B登录。然后当注销用户B时,在注销重定向发生后的某个时间,我将登录为用户A。从这一点开始,我可以继续浏览该站点,就像我以该用户身份登录一样!我通过日志观察到的是,当发生这种劫持时,sessionID是不一样的。用户A在两个session中均已登录,但sessi

ruby-on-rails - 使用具有两个 Devise 用户模型和不同身份验证方法的登录表单

我正在构建一个站点,该站点必须支持通过LDAP进行的身份验证,以及仅在站点中管理的“本地”用户。目前我有以下Devise模型:classUserDevise正在为其中的每一个生成独立的路由,即/local_users/sign_in和/ldap_users/sign_in。这并不理想,用户不需要知道他们是哪种类型的用户,所以我想将它们统一为一种形式,使用一组登录/注销URL。我已经查看了一些关于如何执行此操作的解决方案,但它们似乎依赖于模型具有相同的Devise配置或相同的身份验证方法这一事实。我发现的此类问题的唯一其他在线示例是此Google网上论坛帖子:https://groups

iphone - 设计和 Rails 3 中的 http 身份验证

我有一个使用deviseonrails3的应用程序。我想启用http身份验证,以便我可以从iPhone应用程序向我的网络应用程序进行身份验证。如何从我的iPhone应用程序进行身份验证以进行设计?这安全吗?还是我应该进行不同的身份验证? 最佳答案 从设计的角度来看,您有3个选择:1)使用基本的http身份验证:您的iPhone应用程序有一个secretkey-这是在您的iPhone应用程序代码中烘焙的-用于对网络应用程序的每个请求进行身份验证。Google搜索:“设计基本的http身份验证”2)您可以通过在您的iPhone应用程序中

ruby - 从 Ruby 内部使用 bundler 验证 gem 的版本

有没有办法从Ruby程序中验证我是否拥有最新版本的gem?也就是说,有没有办法以编程方式执行bundleoutdated#{gemname}?我尝试查看bundler的源代码,但找不到直接的方法。目前我正在做这个,它很脆弱,很慢而且很不优雅:IO.popen(%w{/usr/bin/envbundleoutdatedgemname})do|proc|output=proc.readlines.join("\n")returnoutput.include?("Yourbundleisuptodate!")end 最佳答案 避免外部执行