編集 2014 年 8 月 1 日
この編集時間の時点で、サブジェクト プロパティdb.UserProperty()
が少なくとも ndb データストアから削除されていることに気付きました。良い!
そう... db.UserProperty() モデル クラスがあり、これはメール アドレスを Unicode 順に格納します。を格納するだけの Unicode 文字列とは、なぜ、どのように異なるのでしょうか。
users.get_current_user().email()
db.StringProperty() で言うことができますか?
次のように使用しても安全ですか。
class LocalUser(db.Model):
user_account = db.UserProperty()
my_local_user = LocalUser.all().filter("user_account=", users.get_current_user().get())
編集
私がこの質問をした理由は、Google App Engine の多くの例と一部の書籍では、モデルに db.UserProperty() を使用してユーザー インスタンスを保存し、後でユーザーが戻ってきたときに db.Model インスタンスを取得できるためです。その特定のユーザー。
私の意見では、これはアプリケーションのユーザー検証に脆弱性をもたらします。
@RocketDonkey からの回答は、私のクエリのルーツを説明し、ユーザー認証を保存するために db.UserProperty() User オブジェクト インスタンスを保存しない理由について適切な説明を提供します。
正しい方法は、User インスタンスのuser_id()プロパティを保存することです。これは、すべてのユーザーに対して一意で固定されているためです。
PS私の英語でごめんなさい。誰か編集していただけると助かります。