2016-04-02 5 views
-1

私はクライアントからサーバーへ価値を得なければならず、その価値は非常に重要である(値は行動のタイムスタンプです)ので、置換の可能性を除外しなければなりません。偽の価値を送ることができますか、または心配する理由はありませんか?どうやってするの?slient-sideから本物の価値を得る方法

+0

なぜサーバー上の日付を手榴弾にしないのですか? – maleeb

+0

このプロジェクトは、50msも重要なオンラインゲームです。クライアント上でタイムスタンプを作成しようとしましたが、サーバから(ローカルホスト上で)タイムスタンプを取得しようとしました。 2つの違いは12〜50msでしたが、サーバーがスケジュールされたタスクを実行していたときの差は〜1000msでした。私は他の要因が数を増やすと思いますが、私が以前に言ったように、50msさえも重要です。 – Feeco

答えて

1

が偽の値に

を送信することが可能です違いを知っているだろうはい、そうです。オンラインマルチプレイヤーゲームでは、通常、サーバーにユーザー入力を送信する以外は、クライアントがゲームロジックに参加することを許可しません。

どうすればよいですか?

まだお望みなら、getTime()を使用できます。

2つの違いは12-50msでしたが、サーバーがスケジュールされたタスクを実行していたときの差は〜1000msでした。

これは遅延と呼ばれ、要求と要求の処理の間の遅延が処理され、結果が返されます。あなたはあなたのサーバーのパフォーマンスを操作する必要があります。私は実際に見ることはできません。クライアント側のタイムスタンプを生成するのがなぜこの場合あなたにとってより良いものになるのでしょうか?この時間が過ぎてもクライアントはあなたのサーバーから応答を受け取ります。

私が想像できる唯一のことは、ユーザーが自分の情報を別の情報チャネル(サーバー、スカイプ、おそらくsmthではない)から取得することです。他のすべてのケースでは、すべてのプレーヤーが同じレイテンシを取得すると、なぜあなたは気になるでしょうか?

P.S.:質問に文脈を与える必要があります。そうしないと、最終的な目標についてのみ推測できます。

+0

私の質問は、偽の値を送信する可能性についてです。あなたが言及したように、クライアントはゲームロジックに参加することはできません。私が明確にしたい最後のこと: クライアントは彼のロジックの部分を注入できますか?だから、私は関数を作成することができます: ' function send(){ var a =" not_fake "; // request_body(文字列a)でリクエストを投稿 クライアントはrequest_body "fake"と書かれたリクエストをサーバーに送信できますか?それとも、完全に安全でハッキングできないのでしょうか? – Feeco

+0

前にも述べましたが、クライアント側のデータは、jsスクリプトを自分自身で編集/置き換え、ブラウザからのプロキシ要求とそこでのデータの変更から始めて、さまざまな方法でユーザーが偽造することができます。この場合、完全に保護する方法はありません。それを "コードワイズに"保護しようとすると、 "ハッカー"があなたのアプリを逆転してデータを鍛造する時間が増えるだけです。 2番目のqに:受信したデータを適切に処理する(データ型の検証、SQLクエリで値を使用する前にスペックを削除するなど)場合、ユーザーは実際にサーバーロジックに介入できません。 – haldagan

+0

明確にするために:>私の質問は、偽の価値を送る可能性についてです。回答は "はい、ユーザーは常に偽の値を送信することができます" – haldagan

0

私は、(それを格納します)要求をサーバーに送信する前にして使用して新しいタイムスタンプを生成するサーバーに到達した後javscriptで日付関数を使用して、現在の日付を取得します

タイムスタンプ(dateFormat.parse(strDate ).getTime())。toString();

今私は

関連する問題