検索

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

java - 在前后端分离的项目中,如何验证前端请求数据是否合法

高洛峰高洛峰2770日前1084

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

  • PHPz

    PHPz2017-04-18 10:47:05

    バックエンドが分散している場合 (クラウド サーバーなど)、開発のみであれば、oauth2.0 のトークン検証方法を使用することをお勧めします。
    oauth ログインプロセスは次のとおりです:

    1. フィールド token、user_id、login_at、expire_at を含む新しいトークン テーブルを作成します

    2. ユーザーは自分のアカウントとパスワードを使用してログインします

    3. ログインが成功すると、レコードがデータテーブルトークンに挿入され、ユーザーの以前のすべてのトークンが削除されるか期限切れに設定され、トークンがフロントエンドに返されます

    4. フロントエンドでajaxを使用する場合はヘッダーを追加しますAuthorization=token

    5. バックエンドはリクエストヘッダーの認証を読み取り、それが存在し期限切れでない場合は正当なユーザーとみなされ、それ以外の場合はエラーが返されます

    返事
    0
  • PHP中文网

    PHP中文网2017-04-18 10:47:05

    1 ユーザーのログインは、サーバーが異なる場合でも、通常、Cookie + セッションになります。同一オリジン ポリシーの制限により、Cookie を使用してアクセスすることはできません。別のドメイン名。

    2 通常、フロントエンドにはデータの概要を生成するための集計関数があり、データと一緒に投稿されますが、バックエンドは同じ集計関数を使用して投稿されたデータの概要を生成し、比較します。投稿データの概要と一致している場合 データが改変されていないことを証明します。ただし、ユーザーがどのような集計機能を使用しているかを知っていれば、データの集計を作成して投稿することができるため、理論的には判断することはできませんが、実際には一般のユーザーはこれを知りません。

    返事
    0
  • 高洛峰

    高洛峰2017-04-18 10:47:05

    1. JWT、json Web トークン。

    2. データが変更されたかどうかをバックエンドはどのように判断するのでしょうか?それは、バックエンド データベースにデータが保存されないことを意味しますか?

      返事
      0
  • 怪我咯

    怪我咯2017-04-18 10:47:05

    バックエンドデータ検証。これは、フロントエンドとバックエンドが分離されている場合のデータセキュリティのために必要です。
    通常の方法はサイン暗号化を行うことです
    使用する必要があるのはキーとシークレットです
    例えばタオバオAPIタオバオサインの暗号化方法

    key はユーザー ID、name はあなた自身、secret はキーを表します。キーはサーバーによって生成され、データ送信中に Sercet 情報を含めることができないクライアントを暗号化する場合にのみ使用できます。
    クライアントが特定のルールに従ってすべてのリクエストデータを暗号化した後、バックエンドは送信されたデータを取得して同じ方法で暗号化し、署名パラメータを比較して一貫性があるかどうかを確認します。一貫性がある場合は、データが一致していることを意味します。送信プロセス中に改ざんされていないこと。
    さらに、タイムスタンプ パラメーターなどの適時性の検出も必要です。これには、時間エラーが前後 5 分を超えないようにする必要があります。
    もう 1 つのポイントは、データが繰り返しリクエストされた場合、バックエンドが保存するキャッシュを作成することです。サインを受け取った後のサイン、有効期限は 5 分 (上記の時間に相当)、同じサインは、このリクエストが繰り返しリクエストされ、その後拒否されたことを意味します

    基本的に、これはデータのセキュリティ、適時性、重複防止などを確保するためのプロセスです。

    返事
    0
  • ringa_lee

    ringa_lee2017-04-18 10:47:05

    sessionStorage または localStorage は、バックグラウンド自体によって生成された特別なパスワードを保存します。各リクエストはヘッドを介して実行され、データはバックグラウンドで正当であることが検証されます

    返事
    0
  • キャンセル返事