我有一个使用 Pushover 与我通信的个人服务器。也就是说,我的服务器可以触发一个脚本,以不同的优先级将消息直接发送到我的手机。然而,这是一种方式。我希望通过使用 Pushover 添加 html 链接的能力来解决这个问题。
我非常了解套接字代码,但我对其中涉及的安全性有些模糊。这将如何工作的一个例子是电源熄灭。我的服务器在 UPS 上,因此立即在我的手机上向我发送一条消息,说电源已中断,我是否要关闭系统?(可能会在电源恢复时发送后续消息,这意味着我可能不希望它关闭。)它将包含一个链接,例如 example.com:4000/insert_a_generated_hash_here。如果我决定我确实希望服务器关闭,则监视端口 4000 的守护进程将收到
GET /insert_a_generated_hash_here HTTP/1.1\r\n
host: www.example.com\r\n
\r\n
我担心的第一件事是非空终止字符串。这是多大的问题?recv 会自动 null 终止吗?
无论如何,我使用 http get 并对其进行散列(或者我不应该——散列一个潜在的敌对字符串有多安全?)。
如果我使用 MD5,http get 将散列到 25b382b678bb33a21fa677c66e9d02a1(我应该使用 MD5 吗?这只是我想到的第一个散列)。
此时,该哈希(应该可以安全地操作?)与“当前活动”命令表进行比较。由于服务器生成了原始生成的散列,它可以对 http 请求进行散列。如果传入的哈希与表中的某些内容相匹配,那么该命令当然只是运行预先设定的命令。命令也仅在 10 分钟内处于活动状态,此时它们将从活动列表中删除。我还可以添加一个“非活动”列表,它会在我的手机上向我发送一条消息,说“已发出此命令,但未激活”。
在这种情况下,该命令将是关闭,尽管它可能是服务器上的用户通过包管理器等安装某些东西的批准。守护进程也可以为一个简单的网页发回相关的 http 响应。说“好!” (我不认为这有什么大不了的?)
这有多安全,我应该注意什么?或者整个想法是安全自杀的顶峰?