我与我的同事讨论了Flash安全问题.我们正处于为使用Flash插件显示内容的Web项目规划一些内容的阶段.我们需要使用JSON从服务器动态提取Flash应用程序的设置.
我提出的建议是,我们应该在加载插件后保存额外的HTTP请求来拉取数据文件,并将JSON直接嵌入到包含Flash插件的页面中.Flash会触发一个Javascript函数,该函数会将反序列化的JSON数据返回给它.
我的同事以重大的"安全问题"反对这一提议.
我相信除了他的方法需要额外的HTTP请求之外,这两种方法之间几乎没有差别.所有这些都是客户端/服务器,永远不应该信任客户端.如果我想更改JSON查询中的数据,我可以在两种情况下都这样做.文件提取虽然很难破解,但可以使用自定义HTTP代理.
你的想法是什么?
查看示例AWS API Gateway以便将查询字符串映射到Lambda函数,它显示了application/json在集成请求中创建模板映射的示例.如何为所有请求创建模板Content-Type?Lambda无论Content-Type请求中的哪个,我希望它用查询字符串params来激活它.
我有名为"product"的DynamoDB表,其中"userId"的全局二级索引.Primary Key在"id"上.我正在尝试使用"userID"GSI上的"withExclusiveStartKey"实现分页查询.但是,当我传递一个有效的lastId时,我得到以下异常:
独占开始密钥必须与表的密钥模式具有相同的大小(服务:AmazonDynamoDBv2;状态代码:400;错误代码:ValidationException;请求ID:822db97e-04a3-4c36-8c72-6008e2693679)
我在这做错了什么?
public QueryResultPage<Product> findPaged(String userId,int limit,String lastId) {
DynamoDBMapper mapper = new DynamoDBMapper(dynamoDb);
Map<String, AttributeValue> vals = new HashMap<>();
vals.put(":valUserId", new AttributeValue().withS(userId));
DynamoDBQueryExpression<Product> queryExp = new DynamoDBQueryExpression<Product>()
.withKeyConditionExpression("userId = :valUserId")
.withIndexName(ModelConsts.TBL_PRODUCT_GSI_USERID)
.withExpressionAttributeValues(vals)
.withScanIndexForward(false)
.withConsistentRead(false)
.withLimit(limit);
if (lastId != null) {//paging
Map<String, AttributeValue> exclusiveStartKey = new HashMap<String, AttributeValue>();
exclusiveStartKey.put("id", new AttributeValue().withS(lastId));
queryExp = queryExp.withExclusiveStartKey(exclusiveStartKey);
}
QueryResultPage<Product> result = mapper.queryPage(Product.class, queryExp);
return result;
}
Run Code Online (Sandbox Code Playgroud)