【问题标题】:Running a script in a site that copies all keys pressed while the page is open [duplicate]在站点中运行脚本,该脚本复制页面打开时按下的所有键[重复]
【发布时间】:2017-03-05 16:13:55
【问题描述】:

让我快速清除一些东西——我不是在制作键盘记录器。我正在为视频游戏创建一个网站,用户可以在其中获得物品以在游戏中执行特定操作(例如在聊天中输入内容等)。

由于这款游戏的运作方式,我认为最好的方法是建立一个网站,该网站在打开时会记录输入的所有内容(并取消退格),以查看玩家是否完成了操作。然后它会引导他们进行下一个动作。

有没有办法在网站内运行 PHP 或 JavaScript 脚本来记录页面打开时输入的所有击键?然后我可以让它一直听,直到它读到玩家执行命令(例如加入公会或交易某人)?

-薇薇安

【问题讨论】:

  • 有点切题,但很重要:PHP 运行在服务器端,JS 运行在客户端。 PHP 永远不会在您的站点上运行,服务器使用它来生成对用户请求的响应。您将使用 JS 来捕获他们的击键,并可能(取决于您的应用)将这些击键发送到您的服务器进行存储或额外处理。

标签: javascript php keylogger


【解决方案1】:

是的,使用jQuery 很容易完成类似的事情。包含库后,您可以将某些事件放在元素上。一种设置按键监听事件的方法,当用户释放按键时,如下所示:

$('body').keypress(function (event) {
    var character = String.fromCharCode(event.charCode)
    alert(character);
});

然后您可以通过 AJAX 将结果发送到 php(您也可以在 jQuery 中轻松完成(将其放在单独的函数中并在您的按键函数中调用该函数):

var url = 'your_script.php?character=' + character;
$.get(url, function (data) {
    alert(data); // alert response from your_script.php
});

【讨论】:

  • 当只需要一个监听器时,没有充分的理由为此建议一个库。此外,event.which 是一个已弃用的功能,因此不宜推荐。
  • 既然他也想在 PHP 中使用密钥,我确实认为这是使用 jQuery 的一个很好的理由。既然已经有了很好的解决方案,他为什么还要重新发明轮子呢?他可能会编写更多的 JavaScript 代码,仅此而已。 jQuery 也支持所有已经实现的浏览器。感谢您提供信息,我更改了代码。
  • 问题是有many libraries and frameworks 可以用来实现功能,用相同的解决方案说6个答案只是不同的库没有意义。如果没有提到特定的库,最好只显示一个普通的 JS 解决方案,让 OP 确定使用哪个库或框架来实现它。或者同时显示纯 JS 和库。在这种情况下,一个普通的 JS 解决方案只不过是一个库。
  • 您可能是对的,先生。好吧,看起来 OP 甚至不再关心了,所以我会把我的答案留给更多的搜索者。干杯
【解决方案2】:

您可以找到使用 javascript 按下的键。如果它们在输入字段中,您可以使用一个函数来检查按键时字段的值。

这里的这篇文章回答了它。

How to find out what character key is pressed?

【讨论】:

    猜你喜欢
    • 2014-09-16
    • 1970-01-01
    • 2016-02-02
    • 2019-01-23
    • 1970-01-01
    • 2018-11-20
    • 2015-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多