POE::Component::IRC,请求后如何预期动作?

Posted

技术标签:

【中文标题】POE::Component::IRC,请求后如何预期动作?【英文标题】:POE::Component::IRC, how to anticipate an action after requesting it? 【发布时间】:2015-04-02 18:19:15 【问题描述】:

我想要实现的目标:我的 PoCo::IRC 机器人请求您使用 RSA 密钥对消息进行签名,但每次您识别时该消息都有一个随机字符串(有点像#bitcoin-otc's gribble bot,但使用 RSA 而不是比特币)。

我想让它说类似的东西 <mybot> With the key for 'donkus', sign the message '2FrNGk7QoCKQecIz', pass through base64. 它需要预测我签名消息的到来。然后我可以用 base64 中的签名消息回复,它会使用脚本中的硬编码公钥进行验证(可能使用 Crypt::RSA)。这种交流将通过私人消息进行。

这样我就可以创建一堆机器人在我的 EFnet 频道上操作我,是的,我知道我可以使用 Eggdrop,但我更愿意编写自己的 perl 脚本,而不是配置所有垃圾。

【问题讨论】:

【参考方案1】:

我会这样记录请求:

$requests$user = 
  key_for => "donkus",
  token   => "2FrNGk7QoCKQecIz",
  ts      => time(),
;

这样,如果用户重新请求身份验证,旧的就会被破坏。

我会使用ts 字段定期使身份验证请求过期,或者我会使用$user 标识符的LRU 缓存来限制正在播放的请求数量。如果我真的在乎,我会同时做:有一个相对较高的 LRU 缓存限制(比如 100 个请求)和一个相对较低的超时时间(可能是 2 分钟)。

当来自$user 的消息传入时,我会查看它们是否与%requests 中的凭据匹配。如果是,他们在里面。如果不是,他们仍然在外面。

【讨论】:

以上是关于POE::Component::IRC,请求后如何预期动作?的主要内容,如果未能解决你的问题,请参考以下文章

Perl 和 IRC:定期向频道发送消息

将代码签入 TFS 后如何自动请求代码审查

coingecko api 请求限制如何工作?第二次请求后收到太多请求错误

超时请求后如何返回上一个屏幕?

如何在请求后更改块状态数据而不再次发送请求?

请求后端节点应用程序后如何刷新 React 组件?