ruby - 将用户输入直接传递给 strftime 是否危险?

标签 ruby user-input strftime

我有一个收集任意字符串的表单输入。我想将该输入直接传递给 strftime,以便用户可以指定自己的格式。例如:"mytext%Y" 可能是用户输入的,然后我会将其传递给 strftime。

# userinput = "mytext%Y"
mydate = DateTime.now.strftime(userinput)
# outputs "mytext2000"

这样做安全吗?如果不是,开发人员需要考虑或采取什么措施?

最佳答案

这是安全的。

最糟糕的情况是当用户输入无效格式时,它只会打印出字符串。

Date.today.strftime('%A')
# => "Tuesday"

Date.today.strftime('#{1 + 1}')
# => "\#{1 + 1}"

关于ruby - 将用户输入直接传递给 strftime 是否危险?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61893932/

相关文章:

ios - 如何使用 strftime 在 Swift 中格式化字符串

ruby - Ubuntu rake 中止! NameError:未初始化的常量 ActionDispatch::XmlParamsParser

ruby - 使用 Ruby 的记录器让错误转到标准错误,但其他消息到文件/标准输出?

ruby - 优化用于将字符串解析为数值的 ruby​​ 代码

mysql - PHP PDO 清理用户输入

java - ant "<input addproperty=..."无法在 Linux 中的 bash 中工作

ruby-on-rails - Ruby - hhh :mm:ss? 的 strftime 等价物是多少

c - ISO 8601 周数(C 语言)

ruby - 通过 RVM 在 OS X 10.11.6 上安装 ruby​​-2.3.0 时缺少符号

c - 用户输入 - C(不允许某些字符)