2

私は小さなjQueryセレクターゲームを開発しています。基本的に、いくつかのHTMLコードが与えられ、強調表示された項目を選択するためにjQueryセレクターを作成する必要があります。

たとえば、次のようになります。

<body>
  <p id="winner">Select this paragraph</p>
  <p> But not this one </p>
</body>

そして、正しいセレクターの1つは$('#winner')になります。

私は現在、「$('...')」(...が存在する場所)内の文字列を取得して、次のようなことを行う予定です。

var userInput = ...
var userSelectedItems = new Array();
userSelectedItems = $(userInput)

// Check if userSelectedItems == the array of elements supposed to be selected
// Change screen to green and allow users to press enter and continue to next challenge.

さて、ユーザーがPHPなどを直接入力できるようにすると、あらゆる種類の悪いことが起こる可能性があることを知っていますが、基本的にユーザーがこの種のjavascriptコマンドを入力/実行できるようにすることで何かありますか?もしそうなら、私がこの状況を回避することをどのように提案しますか。この教育ゲームを作るのは本当に楽しいので、どんな助けでも大歓迎です。すべてクライアントのコンピューターで実行されているので、危険な方法はわかりません。わからないけど、何か足りないのかもしれない

ありがとう

4

3 に答える 3

3

ユーザーが他のユーザーのJavascriptを使用できるようにすると、セキュリティ上の問題が発生する可能性がありますが、コードを実行しているのが入力者だけである場合は、問題ありません。

于 2012-07-06T16:38:19.893 に答える
2

クライアント側のすべてのものは、エンドユーザーによって行われた変更の影響を常に受け​​ます。

ただし、データベースに情報を保存しておらず、このゲームに関して競争条件がない場合は、セキュリティ上の問題が発生する可能性はありません。自分のJavascript内でクライアント入力をいつでもサニタイズして、技術者以外のユーザーがプロセス中にゲームの状態を変更しないようにすることができます。

于 2012-07-06T16:40:37.713 に答える
0

これはJavascriptと同じです。唯一の脆弱性は、誰かがアプリやデータベースにコードを挿入でき、その結果、ウェブサーバーで提供されるコンテンツが表示される場合です。アプリがXSSおよびSQLインジェクションから保護されている限り、問題はありません。同じ概念です。

于 2012-07-06T16:40:14.167 に答える