注意:java中的程序,服务器使用php,mysql ...文件是.log或.txt文件
我有一个程序从txt文件获取最后一行并通过HTTP请求将其发送到服务器。该文件由外部程序编写,但用户可以打开它进行修改。
这些行采用这种格式,时间将在本地计算机时间内。
[hh:mm:ss]消息
如果我认为(真实)消息中的时间是计算机中的时间,我可以通过与修复位置中的时间进行比较来验证新鲜度和有效性吗? (服务器时间,gtm时间等)
用户可以在世界各地,我无法保证本地机器的时间是准确的。我的想法是启动程序并检查机器上的时间,并将其与我的外部时间进行比较。然后以某种方式设法确保消息不是由用户完成的....例如消息应该是20s~计算机时间和计算机中的时间应该与外部时间同步。
从未做过类似的事情,但真的很感兴趣。
(我知道永远不会有黑客证明程序,但想尽可能地让它变得更难)
谢谢,如果需要,我会在下午添加详细信息。
答案 0 :(得分:2)
时间问题的两个选项:
如果您可以修改创建文件的程序,请始终使用固定时区来编写时间。这将确保所有时区的时间准确。
或者您可以在时间区写下时区并在服务器端进行相应的计算。
关于用户篡改数据:
我建议您生成消息的MD5哈希值并将其发送出去。然后在服务器端再次从消息内容计算MD5。如果散列与传递给服务器的MD5不匹配,则表示用户已经篡改了数据。