【发布时间】:2017-11-18 05:36:53
【问题描述】:
我最近观看了有关 Facebook Messenger Bot 的视频教程。要从使用我的 messenger 机器人的用户那里获取消息,facebook 使用 php://input 将原始 json 发送到我的服务器,然后我的服务器将它们作为回复消息发送回 facebook。 Facebook 没有使用任何参数将用户消息转发到我的服务器。我只是害怕有人使用我的 Messenger bot 攻击或收集有关我服务器的信息。
Mr.Tutorial 使用的示例代码:
file_put_contents("fb.txt", file_get_contents("php://input"));
【问题讨论】:
-
为什么不经过任何清理就将用户输入作为文件保存在服务器上?
-
哦,看看 json 对象。顺便说一句,那不是我的代码
-
如果它只是一个文本文件,当用户访问它的 url 时会下载它,它会相对更安全,但如果你的服务器以某种方式执行该文件中的任何可能的代码怎么办?如果没有任何检查,我永远不会在服务器上保存用户输入
-
文本文件没有做任何事情,它只是保存 facebook 发送的内容。文本文件不能执行代码吗?恐怕当用户使用我的机器人发送 RCE 时,服务器会从 facebook 获取 json,并且服务器会读取 json 对象中的代码,该代码可以远程访问我的服务器。如何预防?
-
所有你需要做的就是阅读文档。 developers.facebook.com/docs/messenger-platform/…
标签: php facebook facebook-messenger-bot