我正在构建一个使用Piwik的网络应用程序。 Piwik是开源分析工具,类似于Google Analytics。
它提供类似于下面提到的跟踪代码。
<!-- Piwik -->
<script type="text/javascript">
var pkBaseURL = (("https:" == document.location.protocol) ? "https://example.com/" : "http://example.com/");
document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
</script><script type="text/javascript">
try {
var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 1);
piwikTracker.trackPageView();
piwikTracker.enableLinkTracking();
} catch( err ) {}
</script><noscript><p><img src="http://example.com/piwik.php?idsite=1" style="border:0" alt="" /></p></noscript>
<!-- End Piwik Tracking Code -->
以下代码适用于网站,其网站ID为 1 。检查代码中的以下行。
var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 1);
<noscript><p><img src="http://example.com/piwik.php?idsite=1" style="border:0" alt="" /></p></noscript>
我网站的用户将登录到自定义的管理面板,并将获取该网站的跟踪代码。
现在我需要隐藏该跟踪代码。 所以,我认为我把它保存在PHP脚本中。类似于这里的一个
<?php
// Custom-made Analytics Script
// File Name: custom.php
$site_id = isset($_GET['id'])?$_GET['id']:0;
?>
<!-- Piwik -->
<script type="text/javascript">
var pkBaseURL = (("https:" == document.location.protocol) ? "https://example.com/" : "http://example.com/");
document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
</script><script type="text/javascript">
try {
var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", <?php echo $site_id; ?>);
piwikTracker.trackPageView();
piwikTracker.enableLinkTracking();
} catch( err ) {}
</script><noscript><p><img src="http://example.com/piwik.php?idsite=<?php echo $site_id; ?>" style="border:0" alt="" /></p></noscript>
<!-- End Piwik Tracking Code -->
正如您所看到的,我已经在JavaScript中替换了site-id,使用PHP变量,我将使用$ _GET获取
现在,我将向用户提供以下JavaScript代码,这些代码将放在他们的网站中。
<script type="text/javascript">
var pkBaseURL = (("https:" == document.location.protocol) ? "https://example.com/" : "http://example.com/");
document.write(unescape("%3Cscript src='" + pkBaseURL + "custom.php?id=1' type='text/javascript'%3E%3C/script%3E"));
</script>
我的问题是,这个脚本会有任何下降点,还是会在任何地方发生故障?
答案 0 :(得分:0)
我在这里看到两个问题:
您的custom.php
容易受到XSS攻击。如果你想保留它,请替换:
$site_id = isset($_GET['id'])?$_GET['id']:0;
使用:
$site_id = (int)filter_input(INPUT_GET, 'id');
仅允许数字输入。
除非您计划更改此代码,否则只需提供带有硬编码ID的静态代码。