検索

ホームページ  >  に質問  >  本文

javascript - トークン検証ロジックとは何ですか?

現在、解決策を考えていますが、同様の成熟した解決策があるかどうかはわかりません。

1. ユーザーの最初の検証
2. 指定されたトークン ディレクトリにトークン値を含む名前のファイルを作成します
3. 保存するためにユーザーにトークンを返します
4. クライアント: 判定に合格URL200または404は論理処理 サーバ側:ファイルの有無を判定して論理処理を行う

思い浮かぶセキュリティ設定は、クローラーによるディレクトリのクロールを禁止し、ブルート フォース クラッキングを防ぐためにディレクトリへのユーザー接続数を監視することです。
この方法にはバグやパフォーマンスの問題はありますか?
それともこれより優れたものはありますか? 良い解決策はありますか?

大家讲道理大家讲道理2711日前885

全員に返信(3)返信します

  • 淡淡烟草味

    淡淡烟草味2017-06-26 10:51:07

    この解決策については、私の他の回答を参照してください: /q/10...

    このソリューションは標準とはみなされていませんが、一般的に使用されているソリューションです。
    以下のような欠点がまだいくつかあります:

    1. 生成されたトークンが長すぎる場合は、GETする際にGETリクエストの長さの制限を超えていないか考慮する必要がありますが(URLの長さに制限があるため)、トークンが短すぎると高い一意性とセキュリティを確保できません

    2. もちろん、トークンをユーザートークンとして使用することは安全ではありません。トークンの有効期限が切れる前に他の人にトークンが盗まれた場合、他の人がユーザーになりすましてログインせずに操作を実行できる可能性があります。

    3. より安全な方法が必要な場合は、セッションサーバーを使用してユーザーを認証することになりますが、セッションのクロスドメインの問題は実際にはよくある問題であり、クロスドメイントークンを使用する限り問題はありません。インターフェイスにアクセスできる場合、トークンはデータの受け渡しを要求します。したがって、私の個人的な見解は、唯一の選択肢はセキュリティと使いやすさの間であるということです。もちろん、JWT などの他の検証方法も使用できますが、この方法は (車輪を再発明する必要がない限り) より面倒です。

    返事
    0
  • その味わいは無限大

    · 2020-09-25 09:56:41
  • 三叔

    三叔2017-06-26 10:51:07

    1. クライアントは情報を送信します
    2. サーバーは情報の正当性をチェックします。ログインが不正な場合、ログインは失敗します。
    3. サーバーはトークンを高同時実行で生成します。 4. サーバーはトークンをクライアントに返します
    5. クライアントはトークンを保存します
    6. クライアントが次回リクエストするときに、サーバーはトークンの有効性を検証します。トークンが有効であれば合格し、無効であれば検証は失敗します

    返事
    0
  • キャンセル返事