一部のユーザーが、サーバーレスで作成されたバックエンドから返される応答を変更してチートする可能性が高い iOS ゲームを設計しています (MITM 偽の証明書を介して)。これをある程度防ぐために、わかりにくい署名を含めたいと考えています。この実装はすべて完了しました (サーバーレス オフラインで作業しましたが、API ゲートウェイの制限により、Lambda から未加工の JSON を返すのに苦労しています。確認するには、JSON のスナップショットを取得できる必要があります)チェックサムを取得するとき、文字列化されたバージョンが同じ順序であること. そうしないと、オブジェクトにインフレートされる前に既に文字列である iOS 側で異なる方法で計算される可能性があります.
文字列を返し、API Gateway をエスケープさせない方法はありますか?
例えば:
callback(null, flattened_json_string);
文字列を返すことができるため、Serverless-Offline で正しい応答が得られます。API-Gateway で実際にホストされると、次のようなエスケープが得られます。
"{\"metadata\":{\"cmKey\":\"537d1a54916e56bac1d03478b18575e8c0c74d86\",\"cacheReady\":true,\"serverTime\":1467433541108},\"commands\":[]}"
このようなブロックを渡す方法は知っていますが、解析して再文字列化して、チェックサムが原因で順序が変わるリスクを冒したくありません。
また、オブジェクトのハッシュを取得するための優れた JavaScript フレームワークがあることも認識していますが、これは明らかに iOS のクライアント側では利用できません。