2

我正在开发一个小的 jQuery 选择器游戏。本质上,您得到了一些 HTML 代码,并且您必须编写 jQuery 选择器来选择突出显示的项目。

例如,假设您有:

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

正确的选择器之一是 $('#winner')

我目前计划在 "$(' ... ') " (...'s 所在的位置)中抓取字符串并执行以下操作:

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 没有什么不同,唯一的漏洞是如果有人能够将一些代码注入您的应用程序或数据库,从而显示在您的 Web 服务器上提供的内容。只要您的应用程序受到 XSS 和 SQL 注入的保护,您应该没问题,这将是相同的概念。

于 2012-07-06T16:40:14.167 回答