我有一個 Python 函式,它接收沒有字符限制的用戶輸入(空格、特殊字符等都允許)。然后,它將輸入寫入 DynamoDB 表。
在關系 SQL 中,任何對資料庫的寫入事務都應引數化以避免 SQL 注入。在 Dynamo 中撰寫用戶提供的資料時,是否有任何類似的最佳實踐來避免安全問題?
uj5u.com熱心網友回復:
NoSQL 資料庫中絕對有可能進行注入攻擊!
您可以做的最好的事情是驗證您的輸入,然后轉義字串引數
DynamoDB 中的注入攻擊的影響可能沒有那么嚴重。不過,您有時可以檢索不應該恢復的結果,這可能會出現問題,也可能不取決于業務案例。這可用于竊取資料或使系統過載。
例子:
如果您使用大于運算子,它將執行字典比較,并且如果您提供具有低 ASCII 值的特殊字符,則可以利用它。
dynamo.scan(TableName = 'my-table', Select = 'ALL_ATTRIBUTES',
ScanFilter = {'username': {"AttributeValueList": [{"S": "*"}],
"ComparisonOperator": "GT"}})
如果 in 的值AttributeValueList作為非轉義引數注入,則可以很容易地利用它
uj5u.com熱心網友回復:
我認為 DynamoDB 中沒有“SQL 注入”
與使用AWS 開發工具包和低級 API的 DynamoDB 表互動的最佳實踐
只有您的身份權限,您的代碼可以修改 DynamoDB 中的資料,沒有其他人可以使用某種腳本來做到這一點
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/531025.html
標籤:Python安全亚马逊-dynamodbsql注入dynamodb 查询
上一篇:確定日期在串列中是否連續
下一篇:帶有連接節點的鏈接的聚集氣泡
