【问题标题】:How can I collect data securely from client web sites如何从客户网站安全地收集数据
【发布时间】:2009-02-26 12:32:18
【问题描述】:

我需要向我的客户提供一个代码 sn-p,他们可以将其添加到他们的网站,类似于谷歌分析代码,例如

<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try{
var pageTracker = _gat._getTracker("UA-xxxxxx-x");
pageTracker._trackPageview();
} catch(err) {}
</script>

但我需要它从客户电子商务网站收集一些值。他们会将代码添加到他们的站点,然后我们将接收这些值并将它们添加到我们的 sql 数据库中。他们将根据我们提供给他们的代码提供客户端或服务器端的值。

谁能建议一种安全的方法来做到这一点?对客户而言,越简单越好。

感谢您的任何建议。

【问题讨论】:

    标签: security


    【解决方案1】:

    Javascript 是客户端技术。因为浏览器不允许跨站点脚本,您的客户端必须托管脚本,以便它可以访问页面的其余部分。它当然无法访问服务器上的电子商务应用程序,因为它在客户端上运行。 可以想象,它可以向电子商务服务器发出 Ajax 请求以获取数据,但这意味着您需要在服务器上放置可以处理此类请求的代码,并且完全在服务器端执行此操作是有意义的。 我不确定您要收集什么样的信息,但您似乎无法在客户端上收集太多信息。

    无论如何,当您的 Javascript 在用户浏览器中呈现时,它可能会向您自己的网站发送请求,例如通过插入不可见的图像,并在查询字符串中传递信息 - 这是不安全的。

    【讨论】:

    • 谢谢。我们对客户端或服务器端代码开放,我们只希望客户端添加尽可能简单。我们将收集的信息类型可能是交易价值、ID 等。
    • 我认为您需要详细说明您正在尝试做什么。如果不了解问题,真的没有什么可以说的。
    • 好的。当我的客户网站上的交易完成时,我需要收集一些关于交易的数据。他们需要将代码添加到他们的站点(这就是为什么它需要尽可能简单)。它将需要传递买方的价值、交易 ID 和电子邮件地址。这有帮助吗?
    • 这显然是一个服务器端组件。 Javascript不会有帮助。如果您不了解您需要支持的商业软件,我无法为您提供实施此功能的建议。
    【解决方案2】:

    您将需要在服务器端执行此操作。出于安全原因,浏览器要么不允许在 ssl 会话中发布到另一个站点,要么向用户提供一个非常可爱的安全警告,让他们感觉自己被黑客入侵了。

    我会在您的服务器上创建一个 Web 服务,并为客户端提供一些示例代码以从他们的服务器调用它。

    【讨论】:

    • 感谢 DancesWithBamboo。我是否能够安全地执行此操作并防止它通过重复值发送,即防止刷新再次发送值?如果他们不止一次地发送价值,他们可以在我们的流程中获得经济利益:)
    猜你喜欢
    • 2020-09-01
    • 2019-11-01
    • 2012-01-22
    • 1970-01-01
    • 2012-03-16
    • 1970-01-01
    • 1970-01-01
    • 2012-03-27
    • 2011-02-16
    相关资源
    最近更新 更多