【问题标题】:sanitize input before inserting data to DynamoDb在将数据插入 DynamoDb 之前清理输入
【发布时间】:2014-01-15 16:02:17
【问题描述】:

目前我已经创建了一个使用 MySql 的 API 是一个数据库。但现在我想搬到 DynamoDB。在将数据插入 MySql 时,我使用 bindParam 来清理用户输入。但是如何在插入到 DynamoDB 之前清理用户输入

【问题讨论】:

    标签: php mysql amazon-dynamodb sanitization


    【解决方案1】:

    AWS PHP SDK doesn't come with a ORM(绑定)。

    不过,GitHub 上确实出现了一些 ORM 选项:option1option2

    编辑并解释 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 中提问。

    【讨论】:

    • 我对这里的消毒感到困惑。这是否会进行清理并有助于防止 SQL 注入。
    • DynamoDB 不支持 SQL,因此您不必关心 SQL 注入。 DynamoDB 不会以任何方式解析/运行您的数据。我认为您正在混合消毒和绑定。
    • 我对此有点困惑。你能指导我找到正确的文件吗,或者只是对此做一个简短的描述。
    猜你喜欢
    • 1970-01-01
    • 2023-03-21
    • 2013-06-16
    • 2016-04-23
    • 2020-06-13
    • 2012-06-02
    • 1970-01-01
    • 2010-11-19
    • 2013-02-04
    相关资源
    最近更新 更多