【发布时间】:2019-02-22 14:22:37
【问题描述】:
我正在使用neo4j python lib 来操作 neo4j 图形数据库。
我需要像
那样格式化密码查询query = 'create (n:Person {{nickname: "{0}"}}) return n;'.format(nickname)
如果昵称本身包含",如A"B,则生成的查询将是
create (n:Person {nickname: "A"B"}) return n; 会在 cql 运行时引发语法错误。
事实上,密码查询语言支持'' 和"" 来表示一个字符串。
所以我的问题是,如果有一个聪明的方法,当变量昵称包含'或"时,格式化的字符串可以自动使用正确的引号吗?
【问题讨论】:
-
查询语言与用户输入结合使用会导致注入漏洞。通常库中应该有一个函数来进行安全引用。