如何为amazonsimpledb转义Python boto的SelectExpression

2024-09-28 22:36:55 发布

您现在位置:Python中文网/ 问答频道 /正文

目前我的代码是

client = boto3.client('sdb')
query = 'SELECT * FROM `%s` WHERE "%s" = "%s"' % (domain, key, value)
response = client.select(SelectExpression = query)

变量key和{}是由用户输入的,在我上面的代码中,最好的转义方法是什么?在

编辑:我关心的是如何转义字段,就像我们过去为防止SQL注入而做的那样,现在在SimpleDB中


Tags: key代码用户fromclientvalueresponsedomain
2条回答

如果您的意思是SQL注入的sideffect是删除/销毁,那么SimpleDB只支持查询数据,如果您想保护数据公开(您不想)检查aws文档here

注意:既然指南很好去,我认为链接就足够了

不能使用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)

相关问题 更多 >