我在ruby中有一个字符串的形式是: "Henry's string"
每 gsub
以及 tr
我试过给我这样的表格 "Henry\\'s string"
, "Henry\\\\'s string"
等等。
这些都是逃避反斜杠,但留给我一个无法逃避的单引号。
我试过: "Henry's string".gsub("'","\\\\'")
不同数量的\ "Henry's string".gsub(/'/) {|x| "\\\\#{x}"}
又是不同数量的\ "Henry's string".gsub(/'/) {|x| "\\#{x}"}.gsub(/\\/) {|x| "#{x}"}
我想我需要一个奇数 \
完全逃逸'(为了加载到mysql),但我不知道如何得到这个。
1条答案
按热度按时间yqhsw0fo1#
当插入到数据库(如mysql)中时,使用带有占位符值的准备语句非常重要。我把它用粗体写出来是因为理解它特别重要。只需要一个小小的失误,你就创建了一个任何人都可以利用的sql注入漏洞,这些漏洞会造成极大的破坏。
转义字符串表面上看起来很简单,但事实并非如此。有很多奇怪的边缘案件,你需要掩盖,其中的细节太复杂,在这里提到一个简短的答案。
简单的解决方案是根本不需要转义,而是编写以下形式的查询:
在哪里
?
表示要插入的数据。您可以使用这些,例如mysql2
像这样的司机:驱动程序将负责正确编码值,这样您就不必担心它了。
您还可以使用sequel或activerecord之类的工具来进一步简化事情。