初始点:
您可以Magento
查看其sales_order
表格信息的用途。
表中的每一行sales_order
代表客户发出的单个订单。管理员中有保护机制,不允许管理员编辑这些订单。您只能取消之前的并创建一个新的克隆订单(如果初始订单确实需要“更改”)。
在表级别有一个名为 的列protect_code
。此代码(我推测)生成为整个订单信息对象的加密哈希(hash_hmac使用任何一种算法:md5、sha1、sha2、sha256 等)。
如果使用犯罪者无权访问的安全密钥对订单信息对象进行哈希处理(例如,黑客访问了您的数据库但未访问您的 PHP 代码),那么他将无法更改订单信息对象的值,因为他还需要更新散列,如果不使用相同的安全密钥,他将无法获得相同的散列。
您将能够通过重新计算哈希来识别任何被篡改的行。
背景资料:
通常,像这样的密钥存储在 PHP 中,并且哈希值在支付表单中呈现给用户,以确保用户在将表单发送到支付网关(单独的网站)之前无法更改支付信息。
您的 PHP 应用程序和支付网关应用程序都共享加密密钥,因为支付网关必须对其接收的数据进行哈希处理并检查它是否未被篡改(通过比较哈希值)。通常,您会从支付网关收到您(自己的专用)加密密钥。
这意味着用户/黑客不知道您的加密密钥并且无法访问您的 PHP 服务器(这意味着他也无法读取密钥)。
您使用的任何东西都可以访问:
如果用户可以访问您的应用程序服务器,这意味着他可以访问任何和所有第三方服务(安全与否),例如数据库、文件存储服务器、支付服务、邮件发送服务等。唯一的例外是规则是,如果您的应用程序服务器只是其他自托管自包含服务的聚合器。
如果用户可以访问数据库服务器但不能访问应用程序服务器,那么您的加密密钥应该是安全的,并且您的数据应该难以被篡改而不被发现(但不难更改或删除)。
如果您在应用程序的任何地方使用少量数据,则用户/黑客可以访问应用程序服务器,这意味着他(黑客)可以访问该数据。您甚至可以将加密密钥存储在单独的服务器上,并通过请求获取它们中的每一个,如果用户/黑客有权访问,他也可以请求它们。如果您的应用程序正在使用它们,那么您的黑客也可以使用它们。