Google Datastore データのエンティティ ID の公開
-
12-09-2019 - |
質問
Google データストアにあるデータのエンティティ ID を公開するために保存されますか。たとえば、私のコードには次のIDを持つエンティティがあります。
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
@Extension(vendorName="datanucleus", key="gae.encoded-pk", value="true")
private String id;
ID は次のようになります。 agptZeERtzaWYvSQadLEgZDDRSUYRs
この文字列からパスワード、アプリケーション URL、その他の情報を抽出できる人はいますか?その文字列の意味は何ですか?
解決
エンティティIDは、オブジェクトID、アプリケーションID、及びオブジェクトのクラス名が含まれていること。それだけでエンコードされた文字列です。そうでもないセキュリティリスクの任意の並べ替えます。
他のヒント
次の URL のように KeyFactory を使用して keytoString、stringToKey に変換できます。 Google アプリ エンジン:
Google App Engine のデータ ストレージの一意の ID であると思われる ID。
キーインスタンスは、keyToString()およびstringtokey()を使用して、エンコードされた文字列表現との間で変換できます。
エンコードされたキー文字列を使用する場合、追加のフィールドを使用してオブジェクトの文字列または数値IDへのアクセスを提供できます。
お役に立てれば幸いです。
虎。
:4321 / _ah / adminと、あなたは、エンティティのすべての種類がKEYフィールドとNAME / IDフィールドを持っていることがわかりますSDKのデータストアビューア、の利点を取ることができます。
あなたは@PrimaryKey限り、文字列またはキーを使用するかどうか、言っIDのための符号化された鍵で、文字列/番号とID /名前]列、およびKEY列が存在します。他の記事で述べたように、このエンコーディングのハッシュ{md5s、最も可能性の高い}あなたappspotアプリケーションID、データオブジェクトの完全修飾クラス名、および何でも@PrimaryKeyとして指定します。
あなたはそれを見つけるためにあなたのプログラムを必要とするとき、あなたは絶対に{、データの名前は気にしない場合は、このフィールドに直接アクセスしたいとする唯一の時間ですが、人間は推測して、それを検索されることはありませんテキストボックス}への言葉、またはときに、{多分バージョンはintを使用して、同じタイプと名前の複数のオブジェクトを持つようにしたい?}、あなたが符号化された鍵の構文を使用する必要があります。どちらもKEYとIDはちょうどあなたがこの値にアクセスすることができますあなたが符号化された鍵の構文を使用して、自分のクラスのフィールドを入れるかどうかをDBに存在しています。
*選択し、[選択] _ _ _ _キー{2 _がある表示するために使用された空間}:また、エンコードされたキーを使用するアプリケーションに使用可能なスピードボーナスがある...クエリの唯一の2種類があります。 AJAXアプリケーションでの大規模なデータセットの場合、データをページ分割する唯一の効率的な方法は、すべてのキーを選択し、クライアントに送信し、クライアントは他のX-ためのリンクを構築、レコードの0-> X番号をお願いすることです> Yの結果、及び、完全なデータのエンコードされたキーの最初のセットを使用してサーバーを照会ちょっといいリストにレスポンスを解析し、すぐに有用ではない397個のサーバーのデータ・オブジェクトをロードすることは避けてください。
{あなたがいる限り私はようなものを命名で息切れしている場合を除き!}アップやワイヤーダウンエンコードされたキーを送信すると、エンコードされていないキーよりも少し多くの帯域幅を取るかもしれません。しかし、それは、AppEngineの上でそれらのCPUサイクルを剃るあなたのクォータが幸せになり、みんなのアプリがほんの一部を少し速く走る!
あなたは主キーを作るものは何でもこのキーは、何らかの形でハッシュ解除しても、のみなどの機密としてデータを公開します。あなたのアプリパスワードまともなデータモデルに関係なく、また意志のユーザパスワード。あなたは、認証のために提供されたユーザークラス、またはあなたがあなたの元に使用するクラス名を使用する場合は、{BIGがあります}リークは、ユーザーの電子メールアドレスであるかもしれません。
唯一の事について...基本的には、放火犯の要求または2を見ることですでに利用可能な唯一の情報は、おそらくさらされる可能性があります。