Google マップを自分のウェブサイトに統合する必要があるプロジェクトに取り組んでいます。現在、私のデータ (緯度/経度など) は MySQL テーブルにあります。MySQL で PHP クエリが実行され、XML ファイルが動的に生成されます。この XML ファイルは、リクエスト元の HTML ページで使用され、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 ファイルをブラウザで見ることができるとします。これは私のウェブサイトを殺すことができるものです! 誰かが私のデータを簡単に使用でき、データ収集のすべての努力が無駄になります。私はこの Web サイトを非営利目的で使用しますが、誰かが XML を介してこのデータを盗み、販売する可能性があります。これは望ましくありません。
では、このファイルを非表示にして、誰かが HTML ページを開いたときに、要求している HTML ページがそれを使用できるようにする方法はありますか?