如何证明客户(网络用户)采取了一些特定的行动
How to prove client (web user) took some specific action
这个问题更多的是从法律的角度。
一般来说,应用程序会保留审计日志,以跟踪谁做了什么。但这在法律问题上真的有用吗?
产生这种疑问的原因是,应用程序本身正在创建那些审计日志。是的,我们在审核日志中保留了客户端 IP、时间、用户 ID 和操作,但这是否足以证明某些用户当时确实从该 IP 的记录中做了 xyz 修改,而不是应用程序本身做的。
用户实际发送了数据库中存在的状态(在 REST 标准中),这到底被认为是证据。
即使我们将输入的哈希值存储到服务器,也不意味着应用程序在计算哈希值之前没有更改任何内容。
编辑:这个答案没有考虑网络否认,因为那是完全不同的故事,与网络应用程序本身无关,而是与托管服务相关。
这一切都归结为应用程序源代码。上次编译应用程序源代码是什么时候?自上次编译以来,是否发生过任何事件?当前应用程序状态的反编译二进制文件和上次编译的应用程序状态是否相同。当前应用代码是否存在恶意代码?
但是,在与一些法律机构合作后,他们中的大多数人不会花这么大的精力进行搜索,除非您涉及一些引人注目的案件。大多数时候,执法部门只会请求应用程序生成的日志并自动信任它(除非被指控的用户起诉网络应用程序提供商伪造日志)。
这个问题更多的是从法律的角度。
一般来说,应用程序会保留审计日志,以跟踪谁做了什么。但这在法律问题上真的有用吗?
产生这种疑问的原因是,应用程序本身正在创建那些审计日志。是的,我们在审核日志中保留了客户端 IP、时间、用户 ID 和操作,但这是否足以证明某些用户当时确实从该 IP 的记录中做了 xyz 修改,而不是应用程序本身做的。
用户实际发送了数据库中存在的状态(在 REST 标准中),这到底被认为是证据。
即使我们将输入的哈希值存储到服务器,也不意味着应用程序在计算哈希值之前没有更改任何内容。
编辑:这个答案没有考虑网络否认,因为那是完全不同的故事,与网络应用程序本身无关,而是与托管服务相关。
这一切都归结为应用程序源代码。上次编译应用程序源代码是什么时候?自上次编译以来,是否发生过任何事件?当前应用程序状态的反编译二进制文件和上次编译的应用程序状态是否相同。当前应用代码是否存在恶意代码?
但是,在与一些法律机构合作后,他们中的大多数人不会花这么大的精力进行搜索,除非您涉及一些引人注目的案件。大多数时候,执法部门只会请求应用程序生成的日志并自动信任它(除非被指控的用户起诉网络应用程序提供商伪造日志)。