如何逃脱的Python博托的SelectExpression亚马逊的SimpleDB
问题描述:
目前我的代码是如何逃脱的Python博托的SelectExpression亚马逊的SimpleDB
client = boto3.client('sdb')
query = 'SELECT * FROM `%s` WHERE "%s" = "%s"' % (domain, key, value)
response = client.select(SelectExpression = query)
变量key
和value
由用户输入的,什么是最好的逃离他们在我上面的代码方式吗?
编辑:我关心的是如何逃脱的领域,如我们过去那样,以防止SQL注入,但是现在的SimpleDB
答
如果你的意思是SQL注入的sideffect
是删除/销毁,SimpleDB的唯一支持查询数据,如果你要保护的数据暴露(即你不想)检查AWS文档here
注:由于引导是好走,我想copy pasting
从链接虽然
答
子选择和破坏性操作不能使用simpledb执行。
Amazon提供的引用规则:http://docs.aws.amazon.com/AmazonSimpleDB/latest/DeveloperGuide/QuotingRulesSelect.html
您可以申请使用此功能在Python这种行为:
def quote(string):
return string.replace("'", "''").replace('"', '""').replace('`', '``')
client = boto3.client('sdb')
query = 'SELECT * FROM `%s` WHERE "%s" = "%s"' % (quote(domain), quote(key), quote(value))
response = client.select(SelectExpression = query)
什么是预期结果查询? – helloV
您是否提前看到http://*.com/a/4451119/2740386? –