現在html,javascriptを使用してのPCやスマホからブラウザゲームを作成しようとしていますが
ブラウザのデバッガからhtmlやjsをいじられて意図しない動作が起こってしまうことを懸念しています。
そういったことを防ぐことは不可能でしょうか。
不可能な場合はクロスプラットフォーム開発ツールを使用して制作しようかと思いますが
おすすめのものがありましたら教えていただけると助かります。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
デベロッパーツールの起動を阻止するだけならライブラリが色々とあるので対策は可能です。
http://shimax.cocolog-nifty.com/search/2014/08/google-chrome-1.html
ただまぁ、この路線で調査を進めていくと、
Firefox等でプラグインを入れたらライブラリが誤認するなど、色々と干渉するようです。
このサイトはChromeでしか閲覧出来ませんみたいな実装になりそうです。
そもそもHTMLやJavaScriptのファイルというのは
ブラウザに読み込ませて、どう動いてもらいたいかをお願いしているだけの文字列です。
スクリプトファイルをクライアントへ手渡すだけで後は知らねというのがWebサーバですから、
その後の事、HTML・JSファイルが正しく実行されるかに関して責任を持ってくれるわけではありません。
これを悪用するパターンとして、Node.jsを動かすChroniumが入っているElectronがありますし。
他にもプロキシサーバを内部的に作っておき、特定URLのJavaScriptファイルの受信をインターセプトして、
好き勝手なコードを差し込んだオレオレJavaScriptファイルに改ざんしてチート開始、ということも可能です。
要するにWebの技術は改ざんへの耐性がなく、
そもそもWebのフロントエンドでゲームを配信するのはやめとけという話です。
まぁ、JSファイルを暗号化したり、難読化を施しつつ、定期的にバージョンアップしてコードがガラッと変わるなら
不正な事やってそうなリクエストを見つけてBANという形でそれなりにがんばれそうですが、
まぁ金にならない仕事かつ人力になるので辛いと思います。
ソシャゲのように全てのユーザーの行動を逐一Webサーバへリクエストを投げるという形で実装し、
Webサーバでリクエストの整合性を見張り続けるという仕組みなら簡単に堅牢な作りに出来るでしょう。
このようにチート対策に関しては、
どこまで頑張るか、どのチートは最悪諦めるのかというトレードオフで決まる関係になっています。
Webゲームの技術等、チートにも触れた記事や書籍というのはたまにありますので、
調査してみると良いと思います。
投稿2019/02/10 09:42
総合スコア21158
0
無理です。
デベロッパ機能のないブラウザ使ってもらうしかないですね(そこまで制限はできませんしそんな使いにくいアプリ誰も使いません)。
デベロッパから画面内の情報はいじれても逆はできませんから。
大事な処理、
例えばスコアの保存などデータ関係の処理は全てサーバー側に任せて、各種不正送信(入力内容など)をサーバー側でバリデーションするしかないでしょうね。
少し前にとある期間限定で配信されたスマホブラウザ限定のゲームも、全てクライアント側で処理されていたため、(期間終了後にやってたけど)デベロッパから操作してプレイ可能にしたりPCからも操作できるようにしたりクリア条件満たさせたり、ありましたが、
サーバー側で処理させていればそのようなことはできなくさせられたはずですしね。
もっといえば、サーバー側で処理させるにしても作る側はデベロッパツールでどこまで悪さができるかというところは知っておかなければならないわけですね。
投稿2019/02/10 05:50
総合スコア80850
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/13 03:26