2

我的源站点包含民意调查、图表和显示 HTML 代码的按钮。此代码可用于将这些图表集成到多个网站中,而不必将我们的数据库和服务器凭据信任给这些网站的作者。

问题是:我如何将图表(这是一个 FusionCharts 实现)从第一个站点集成到第二个或第三/第四/第五个站点,同时保护我的东西?

我不知道如何实现,因为任何人都可以将这些图表嵌入他们的网站。

任何帮助我摆脱困境的想法将不胜感激。

4

2 回答 2

1

如果你担心保护你的 js 代码,你可以尝试使用YUI 压缩器UglifyJSjScrambler来混淆它。但是,这些都不会 100% 保护您的代码。

于 2013-07-15T20:18:37.223 回答
0

由于您担心的是 FusionCharts 的数据,因此我会推荐以下内容。

  1. 通过 data url 方法将数据传递给图表。(即setJSONUrl()setXMLUrl()
  2. 仅允许从特定的白名单引荐来源访问此数据。

假设在您的页面中有一个图表。呈现该图表的代码有点像:

var myChart = new FusionCharts({
    type: "column2d",
    dataSource: "http://my-domain.com/datafolder/datafile.json",
    dataFormat: "jsonurl",
    renderAt: "my-chart-container-div"
}).render();

请注意,数据是通过 JSON(您可以选择 XML)格式从 URL 获取的。(这篇关于为您的数据使用 JSON url 的FusionCharts 文档应该会有所帮助。)现在,您可以限制可以引用此datafile.jsonURL 的源网站(域)。.htaccess在基于 PHP 的服务器中,使用文件非常容易。设置.htaccess非常简单,并且有许多在线资源可以帮助您入门。您可以在http://www.htaccess-guide.com/deny-visitors-by-referrer/找到更多相关信息

例如,您可能.htaccess在目录中拥有如下所示的文件datafolder

RewriteEngine on
# Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} otherdomain\.com [NC,OR]
RewriteCond %{HTTP_REFERER} anotherdomain\.com
RewriteRule .* - [F]

上述规则将授予访问otherdomain.comanotherdomain.com链接到您在datafolder.

于 2013-07-22T03:48:39.543 回答