我有一个表单输入,可以收集任何任意字符串。我想将该输入直接传递给 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}"