【发布时间】:2014-01-15 16:02:17
【问题描述】:
目前我已经创建了一个使用 MySql 的 API 是一个数据库。但现在我想搬到 DynamoDB。在将数据插入 MySql 时,我使用 bindParam 来清理用户输入。但是如何在插入到 DynamoDB 之前清理用户输入
【问题讨论】:
标签: php mysql amazon-dynamodb sanitization
目前我已经创建了一个使用 MySql 的 API 是一个数据库。但现在我想搬到 DynamoDB。在将数据插入 MySql 时,我使用 bindParam 来清理用户输入。但是如何在插入到 DynamoDB 之前清理用户输入
【问题讨论】:
标签: php mysql amazon-dynamodb sanitization
AWS PHP SDK doesn't come with a ORM(绑定)。
不过,GitHub 上确实出现了一些 ORM 选项:option1、option2。
编辑并解释 DynamoDB +- SQL 注入:
当您最后使用 DynamoDB 时,您正在调用 DynamoDB API(get/scan/query)。将它们视为接收 JSON 作为输入的 REST API。如果我想获得一个带有 hashId X 的元素,我必须设置它。我无法在此处设置注入(例如“'X' 或 1=1”),因为 API 不会解析我的字符串,引擎只会在您键入的字符串和相关属性之间进行 EQ 比较(在这种情况下 - 哈希主键属性)。
通过谷歌搜索,人们注意到 NoSQL 通常不会自动免疫 SQL 注入 (see here about MongoDB and PHP),但据我所知,在使用 DynamoDB 时您不必担心,因为您将查询构建为API,而不是向数据库引擎发送长字符串进行评估。
我希望这能回答你的问题,如果不能随时在 cmets 中提问。
【讨论】: