4

PHP、AS3、および mysql を使用しています。

私はウェブサイトを持っています。フラッシュ (as3) Web サイト。フラッシュ Web サイトは、メンバーの情報を php を介して mysql データベースに保存します。「メンバー」テーブルには、主キーとして「id」、一意のフィールドとして「ユーザー名」があります。

今私の状況は次のとおりです。フラッシュがメンバーのプロフィールを表示したいとき。私の質問:

  1. mysql クエリを処理するために、Flash はメンバーの「ID」または「ユーザー名」を php に渡す必要がありますか?

  2. 「ID」または「ユーザー名」を渡す違いはありますか?

  3. どちらがより安全ですか?

  4. どれをお勧めしますか?

セキュリティとパフォーマンスの観点から Web サイトを最適化したいと考えています。

4

4 に答える 4

8

主キーは、常にデータベースの行を識別するための最も安全な方法です。たとえば、後で気が変わってユーザー名の重複を許可する場合があります。

ActionScript が PHP と通信する方法によっては、リクエストでユーザー名ではなく整数 ID を送信すると、送信するバイト数が少なくなる可能性があります。

于 2009-03-26T03:20:24.487 に答える
8

1) どちらも間違いなく、すべきことではありません。

2) ID はおそらく短く、検索がわずかに高速です。ID は、システムに関するもう少し詳しい情報を提供します。サイトがシリアル ID を使用していることを知っていて、そのうちの 1 つが何であるかを知っている場合、それはそれらすべてを知っているのと同じくらい良いことですが、1 つのユーザー名を知っていても、他のユーザーのユーザー名を知ることはできません。一方、ユーザー名はユーザーの心理をより明らかにするものであり、パスワードのヒントを構成する可能性があります。

3) 項目 2 で説明したように、両方とも非常にわずかな下落があります。

4) ID を使用します。

于 2009-03-26T03:23:32.183 に答える
3

ID 番号を渡すための引数:

  • 人々は自分のIDを変更することはありません。人は名前を変えます。使い捨てアカウントのカジュアル ゲーム サイトでは問題にならないかもしれませんが、長期登録ユーザーにとっては問題になる可能性があります。私は動揺した女性から、元夫の姓をユーザー名から削除するよう要求されました。これを行うためのプロセスを迅速に確立する必要がありました。

  • より短い

  • 索引付けとパーティション化が容易になります。

ユーザー名を渡すための引数:

  • 合法的な既存のアカウントを推測するのが少し難しくなります (ただし、不可能ではありません)。
于 2009-03-26T03:23:41.967 に答える
1

おそらく、「PHP セッション」に精通する必要があります。おそらく、既にこれが実装されているフレームワークを使用してください。これは自明ではなく、台無しにしたくないからです。セッション管理ソフトウェアは、ログイン画面、「パスワードを忘れた」など、これらすべてを処理します。

そうすれば、サイトが本来何のためにあるのかに注意を向けることができます。

楽しそうですね (actionscript + php + mysql) - 頑張ってください!

于 2009-03-26T03:19:53.910 に答える