草庐IT

安全参数

全部标签

ruby - 我可以告诉 Ruby 方法期望特定的参数类型吗?

defdoSomething(value)if(value.is_a?(Integer))printvalue*2elseprint"Error:Expectedintegervalue"exitendend我可以告诉Ruby方法某个参数应该是一个整数,否则会崩溃吗?像Java。 最佳答案 不,你不能。您只能做您已经在做的事情:自己检查类型。 关于ruby-我可以告诉Ruby方法期望特定的参数类型吗?,我们在StackOverflow上找到一个类似的问题: h

ruby-on-rails - 将用户生成的文本安全地存储在数据库中 (Ruby/Rails)

我正在尝试找到一种方法将用户生成的文本安全地存储在数据库中(这样只有用户才能访问他/她存储的文本)。我可以让Rails使用用户密码作为key来加密和解密用户的文本条目,但是如果用户忘记了他们的密码,就没有办法解密他们以前的内容/文本(因为Rails应用程序使用BCrypt来仅存储密码的哈希值)。有人知道怎么做吗?看起来Dropbox做了类似的事情:“存储在Dropbox服务器上的所有文件都经过加密(AES-256),没有您的帐户密码就无法访问。”(http://www.dropbox.com/help/27)然而,它们允许您重置密码,我假设它们不会在任何地方存储您的纯文本密码。我错过了

ruby-on-rails - 使用音译的 Rails 参数化不适用于阿拉伯语/Unicode 字符串

我有一个包含阿拉伯字符的字符串"محمود"当我尝试参数化这个字符串时,它返回空字符串“”x="محمود"x.parameterize=>""我检查了参数化代码,发现它调用I18n.transliterate返回问号“??????”我引用上一个问题HowdoyoucustomizetransliterationsinaRails3app?尝试自定义音译但仍然返回空白字符串。有什么帮助吗? 最佳答案 parameterize方法应该使字符串URL安全,并且对URL中可以出现的字符类型有严格限制。通常,任何不是严格a-z或0-9或-的

ruby-on-rails - 如何从查询字符串中删除空值参数

我有一个搜索表单,有很多选项,提交到带有Get请求的路由。网址是这样的:http://localhost:3000/restaurants/search?utf8=%E2%9C%93&city=&cuisine=&number_of_people=&query=hello有更多的参数。我想让它更干净一些,比如删除所有空白的参数。像这样:(基本上删除所有空白的参数)http://localhost:3000/restaurants/search?query=hello如何做到这一点?一种方法是使用CGI::parse("foo=bar&bar=foo&hello=hi")给你{"foo"

ruby - Capistrano 3.0 — 现在如何安全地提示输入密码?

在3.0之前有一种方法可以做到这一点:#...set:mysql_password,proc{Capistrano::CLI.password_prompt"Gimmeremotedatabaseserverpassword.Don'tworry,Iwon'ttellanyone:"}#...namespace:dbdodesc'Dumpremotedatabase'task:dumpdorun"mysqldump-u#{mysql_user}-p#{mysql_database}>~/#{mysql_database}.sql"do|channel,stream,data|ifdat

Ruby:跨进程转发接收者、参数和 block

给定这样的代码:p=procdo|*args,&block|pselfpargspblock[]ifblockendq=procdo|*args,&block|p'before'instance_exec(*args,&p)endo=Object.newo.define_singleton_method(:my_meth,q)o.my_meth(1,2){3}如何在保留q的接收者的同时将调用从p完全转发到q?基本上我也想打印3,但是instance_exec和所有ruby​​方法一样,只能占用一个block。是否可以在不更改p的情况下,让我可以互换使用p和q(我的想法是让q有时包装p)

ruby-on-rails - 如何部署线程安全的异步 Rails 应用程序?

我在网络上阅读了大量关于不同版本的ruby​​和rails的线程安全和性能的资料,我想我现在已经很好地理解了这些内容。讨论中似乎奇怪地遗漏了如何实际部署异步Rails应用程序。当谈到应用程序中的线程和同步性时,人们希望优化两件事:以最少的RAM使用率利用所有CPU内核能够在之前的请求等待IO时处理新请求第1点是人们(正确地)对JRuby感到兴奋的地方。对于这个问题,我只是想优化第2点。假设这是我应用中唯一的Controller:classTheController"hello"enddefslowrender:text=>User.count.to_sendendfast没有IO,每秒

c - C 扩展中的 Ruby 关键字参数

如何处理来自C扩展的Ruby2.0.0关键字参数?背景defexample(name:'Bob'hat_color:'red')puts"#{name}hasa#{hat_color}hat!"endexample#=>"Bobhasaredhat!"example(name:'Joe',hat_color:'blue')#=>"Joehasabluehat!"关键字参数(如上)在处理具有许多不同调用序列或选项的方法时非常有用。我在C扩展中有一个这样的方法(一种处理我项目中大部分OpenGL绘图的blit方法),我想知道如何让该方法处理来自ruby​​的关键字参数。想法根据我所做的一些

ruby - 以元编程方式定义采用关键字参数的 Ruby 方法?

Struct让我创建一个新类,它接受参数并具有一些很好的语义。但是,参数不是必需的,它们的顺序需要引用定义:Point=Struct.new(:x,:y)Point.new(111,222)#=>Point.new(111)#=>我想要类似于Struct的东西,但它使用关键字参数代替:Point=StricterStruct.new(:x,:y)Point.new(x:111,y:222)#=>Point.new(x:111)#=>ArgumentError这可能看起来像这样:moduleStricterStructdefself.new(*attributes)klass=Class

Ruby:在将 proc 转换为 block 时提供参数

我们可以很容易地定义一个方法并将它变成带有一元符号的block。defmy_method(arg)putsarg*2end['foo','bar'].each(&method(:my_method))#foofoo#barbar#ormy_method=->(arg){putsarg*2}['foo','bar'].each(&my_method)#sameoutput正如我们所见,当我们使用聚合时,第一个参数会自动传递。但是,如果我们需要传递2个或更多参数怎么办?my_method=->(arg,num){putsarg*num}['foo','bar'].each(&my_meth