草庐IT

信息安全评估样题

全部标签

ruby - 如何向 Ruby 中的异常消息添加信息?

如何在不更改ruby​​类的情况下向异常消息添加信息?我目前使用的方法是strings.each_with_indexdo|string,i|begindo_risky_operation(string)rescueraise$!.class,"Problemwithstringnumber#{i}:#{$!}"endend理想情况下,我还想保留回溯。有没有更好的办法? 最佳答案 要重新引发异常并修改消息,同时保留异常类及其回溯,只需执行以下操作:strings.each_with_indexdo|string,i|begindo_

ruby-on-rails - 寻找在 Ruby on Rails 中构建安全 REST API 的建议

我开始为我正在从事的项目构建RESTAPI,这让我对使用RoR构建API的最佳方法进行了一些研究。我很快发现,默认情况下,模型对世界开放,可以通过URL调用,只需在URL末尾放置一个“.xml”并传递适当的参数。那么接下来的问题来了。如何保护我的应用程序以防止未经授权的更改?在做一些研究时,我发现了几篇关于attr_accessible的文章。和attr_protected以及如何使用它们。我发现谈论这些的特定URL于07年5月发布(here)。与ruby​​的所有事物一样,我确信从那时起事物已经发生了变化。所以我的问题是,这仍然是在RoR中保护RESTAPI的最佳方式吗?如果不是,您

ruby-on-rails - 如何用 ruby 安全地用下划线替换所有空格?

这适用于任何包含空格的字符串str.downcase.tr!("","_")但是没有空格的字符串会被删除所以“NewSchool”会变成“new_school”,但“color”会变成“”,没什么! 最佳答案 将“_”作为参数传递给parameterize(separator:'-').对于Rails4及以下版本,使用str.parameterize('_')例子:withspacestr="NewSchool"str.parameterize(separator:'_')=>"new_school"withoutspacestr=

ruby - 安全的 ActiveRecord 查询

我正在尝试编写LIKE查询。我读到纯字符串查询不安全,但是我找不到任何说明如何编写安全的LIKE哈希查询的文档。这可能吗?我应该手动防御SQL注入(inject)吗? 最佳答案 为确保您的查询字符串得到正确清理,请使用数组或散列查询语法来描述您的条件:Foo.where("barLIKE?","%#{query}%")或:Foo.where("barLIKE:query",query:"%#{query}%")如果query可能包含%字符而您不想允许它(这取决于您的用例),那么您需要清理查询sanitize_sql_like第一:F

学习若依框架----之----获取登录登录系统、ip、浏览器信息

文章目录1.导入需要用到的依赖:2.IP获取3.AddressUtils-获取地址类4.登录日志管理工具4.SpringUtils获取bean工具5.客户端工具6.使用7.测试8.数据库记录若依里面,创建登录日志是根据异步任务进行新增,设置的有一个延时任务,登录之后,创建登录日志。本文章是非异步任务新增。大概思路是:在登录、注册、退出登录完成返回之前,调用日志工具,进行新增日志操作。备注:重点是日志工具逻辑,先判断是不是内网,然后获取IP地址,根据IP地址获取地址信息,使用浏览器依赖获取到浏览器信息,这些信息组合成登录信息,在日志工具使用springUtils获取日志service服务bean

ruby - 如何知道 ruby​​ 中什么不是线程安全的?

startingfromRails4,默认情况下,一切都必须在线程环境中运行。这意味着我们编写的所有代码和所有我们使用的gem必须是threadsafe所以,我对此有几个问题:什么在ruby​​/rails中不是线程安全的?VS什么是ruby​​/rails中的线程安全?是否有已知线程安全的gem列表,反之亦然?是否有非线程安全示例的常见代码模式列表@result||=some_method?rubylang核心中的数据结构如Hash等线程安全?在MRI上,哪里有GVL/GIL这意味着一次只能运行1个ruby​​线程,除了IO,线程安全的变化对我们有影响吗?

ruby - Ruby 中的安全整数解析

我有一个字符串,例如'123',我想将它转换为整数123。我知道您可以简单地执行some_string.to_i,但这会将'lolipops'转换为0,这不是我的效果心里。当我尝试转换一些无效的东西时,我希望它在我的脸上爆炸,伴随着一个美好而痛苦的Exception。否则,我无法区分有效的0和根本不是数字的东西。编辑:我一直在寻找没有正则表达式欺骗的标准方法。 最佳答案 Ruby内置了这个功能:Integer('1001')#=>1001Integer('1001nights')#ArgumentError:invalidvalue

ruby - 如何在 ruby​​ 中做一个安全的连接路径名?

我的Rails开发环境是基于Windows的,我的生产环境是基于Linux的。可能会使用VirtualHost。假设需要在/public文件夹中使用File.open('/tmp/abc.txt','r')引用一个文件名。——但在Windows中它应该是C:\tmp\abc.txt。如何进行正确的路径连接以处理两种不同的环境?prefix_tmp_path='/tmp/'filename="/#{rand(10)}.txt"fullname=prefix_tmp_path+filename#/tmp//1.txt当prefix_tmp_path="C:\tmp\"我得到C:\tmp\/

javascript - 如何在网站上安全地使用 google maps api key

我在我的网站上使用googlemapsapi并想使用我的APIkey,但我对如何保证它的安全感到困惑。我知道我可以将实际key硬编码到index.html中但是当任何人查看该站点的源代码时,它就在那里供任何人查看。如果有人使用调试工具(如Firebug)查看网站,我也不希望它显示在DOM中。我假设有一种方法可以将它存储在我可以获取的单独文件中(可能在我的html/目录之外)。如果有人可以提供示例或评论这种方法是否相对安全,我将非常感谢您的帮助。我找到了关于这个主题的其他帖子,但没有一个适用于这个(相对简单的)案例。 最佳答案 只需设

javascript - 查找 javascript new Function() 构造函数抛出的 SyntaxError 的详细信息

当使用newFunction(params,body)构造函数从JavaScript代码创建新函数时,在body中传递无效字符串会产生SyntaxError。虽然此异常包含错误消息(即:Unexpectedtoken=),但似乎不包含上下文(即发现错误的行/列或字符)。fiddle示例:https://jsfiddle.net/gheh1m8p/vartestWithSyntaxError="{\n\n\n=2;}";try{varf=newFunction('',testWithSyntaxError);}catch(e){console.log(einstanceofSyntaxE