2010-12-17 9 views
1

私はJavascript(ブラックジャックなど)で作成されたかなり小さいオンラインゲームを見てきました。それらのいくつかはかなりきちんとしていますが、Javascriptはクライアントサイドでレンダリングされるので安全ではありません。私が作成したいゲームを見て、ペイ・プレイ・ユーザー・アカウントで長期的に考えると、特定のゲーム・ロジックがエンド・ユーザーから隠されている場所では、より安全なものが必要になると思っています。オンラインミニゲームのための安全なウェブ言語?

これを満たすウェブ言語/技術に関する推奨事項はありますか?オープンソース/フリーが望ましいFlashはオープンソースではありませんか?私は現在、標準のHTML/CSS/JavascriptとPHPで最も多くの経験を持っています。

アイデアを探しています。

ありがとうございます!

答えて

2

セキュリティを扱うときは、常に安全なものを定義する必要があります。賭博のウェブサイトを運営している場合、あなたの地方のゲーム委員会はこれについていくつかの言い分を持っているかもしれません。あなたが楽しみのためにマルチプレイヤーゲームを実行しているだけの場合は、あなたの定義をより緩くすることができます(時折の不正行為がその日を台無しにしないと仮定します)。

一般に、エンドユーザーがゲームプレイに干渉することを完全に防止したい場合は、実際の作業はすべて自分が管理するサーバー上になければなりません。これは、PHP、Ruby、Perl、Python、Javaなどを意味します。フラッシュ、javascript、またはhtml5フロントエンドを使用すると、完全に作成されたとしても、信頼できないデータが生成される可能性があります。

特別に細工された偽のデータをサーバーに送信する悪意のあるプレイヤーの影響を最小限に抑えるには、バッファサイズ/境界チェックと入力パラメータの消去を処理するサーバー側言語を使用する必要があります。私は、大部分のスクリプト言語のように自動的に境界チェックを処理するPHPを多用しています。 PHPは、クライアント側で入力されたデータを自動的にはクリーンアップしませんが、文字列操作ツールが優れているため、自分で行うことができます。アポストロフィ、htmlタグ、およびJavaScriptインジケータ(http://en.wikipedia.org/wiki/SQL_injection)とCross Sightスクリプティング攻撃(http://en.wikipedia.org/wiki/Cross-site_scripting)を防ぐためにユーザが入力する可能性のあるJavaScriptを処理するように注意してください。すべての '、<、>を文字コードに変換するのは良いスタートですが、トピックを徹底的に調べる必要があります。クロスサイトスクリプティング攻撃を助けるために、別の方法で必要なことが明白でない限り、他のドメイン名からの要求を無視する必要があります。

すべてのプログラミングの問題については、可能な限りさまざまなデータを使用してできるだけ慎重に検討し、テストしてください。

2

ここで最良の選択肢は、サーバー側で必要な処理を確保し、クライアントから届いたものを検証することです。

あなたのフロントエンドには、JavaScript、フラッシュ、または何か他のものがあるかどうか - それはバックエンド、サーバー上で確認できるようにする必要があります「だけでカードの上に反転したとブラックジャックだプレーヤー」を伝えるとき、そのプレイヤーできるカードをひっくり返して、今すぐブラックジャックを取得してください。

技術的なところでは、PHPがうまくいくことを知っている限り、ユーザーの入力に対してこれらのチェックを行っていることを確認するだけです。

関連する問題