我正在开发一个需要将 Google 地图与我的网站集成的项目。现在,我的数据(纬度/经度等)在 MySQL 表中。PHP 查询在 MySQL 上运行以动态生成 XML 文件。然后,请求的 HTML 页面使用这个 XML 文件,然后使用 JavaScript 在 Google 地图上绘制这些点。
请求此 XML 文件的 HTML 代码片段是:
downloadUrl("generatexml.php", function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var name = markers[i].getAttribute("name");
var address = markers[i].getAttribute("address");
var type = markers[i].getAttribute("type");
var point = new google.maps.LatLng(
parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
var html = "<b>" + name + "</b> <br/>" + address;
var icon = customIcons[type] || {};
var marker = new google.maps.Marker({
map: map,
position: point,
icon: icon.icon
});
bindInfoWindow(marker, map, infoWindow, html);
}
});
上述函数downloadUrl定义为:
function downloadUrl(url, callback) {
var request = window.ActiveXObject ?
new ActiveXObject('Microsoft.XMLHTTP') :
new XMLHttpRequest;
request.onreadystatechange = function() {
if (request.readyState == 4) {
request.onreadystatechange = doNothing;
callback(request, request.status);
}
};
request.open('GET', url, true);
request.send(null);
}
现在,问题是,假设如果某人的目录类型www.mydomain.com/generatexml.php
,那么他们将能够在他的浏览器中看到从 MySQL 数据生成的 XML 文件。这是可以杀死我的网站的东西!有人可以轻松使用我的数据,而我收集数据的所有努力都将付诸东流。我将把这个网站用于非盈利目的,但有人可以通过 XML 窃取这些数据并将其出售,这是我不希望发生的。
那么,有没有办法隐藏这个文件,并且当任何人打开 HTML 页面时,请求的 HTML 页面仍然能够使用它?