Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以安全地从PHP中提取目录内容,并使用JQuery读取它们?_Javascript_Php_Jquery_Xss - Fatal编程技术网

Javascript 是否可以安全地从PHP中提取目录内容,并使用JQuery读取它们?

Javascript 是否可以安全地从PHP中提取目录内容,并使用JQuery读取它们?,javascript,php,jquery,xss,Javascript,Php,Jquery,Xss,我的问题是关于此特定操作的PHP安全性: 我想使用javascript从web服务器上的特定目录中提取所有json文件。我是这样做的: 我使用这个PHP脚本(“get data.PHP”)提取所有正确的文件名: 然后,我使用以下命令将文件读入数组: function getMapInfo(fileName){ $.get(fileName, function(result) { var map = JSON.parse(result); mapData.p

我的问题是关于此特定操作的PHP安全性:

我想使用javascript从web服务器上的特定目录中提取所有json文件。我是这样做的: 我使用这个PHP脚本(“get data.PHP”)提取所有正确的文件名:

然后,我使用以下命令将文件读入数组:

function getMapInfo(fileName){
    $.get(fileName, function(result) {
        var map = JSON.parse(result);
        mapData.push(map);
    });
 }
我从这里得到了一些代码: 我读了一些xss,我的理解是“不可信数据”是用户输入的数据,然后在脚本中运行?我相信我的上述解决方案不包含不安全的数据,因为它只提取已经在我的服务器上的文件,对吗

总之,我的问题是:这是允许我的代码从服务器检索多个未知文件的安全方法吗?最后,我希望使用将地图数据“保存”到服务器,然后由上述脚本读取以供其他人查看。

非常感谢


乔丹是的,这里非常安全。您只需要在需要时确保安全性是php代码的一部分,通过限制或过滤它可以选择什么(已经很好了)以及如何验证和存储.json文件,一旦解决了这个问题,您就可以了,并且您现有的解决方案是完全安全的。如果您担心其他人查看您网站上的目录,您也可以修改.htaccess文件以隐藏文件夹内容。

应该是安全的,您只需将文件名列表作为JSON发送到客户端,只要你不让用户选择文件名或文件夹,这样他们就可以下载其他可能包含敏感数据的文件,这很好。太好了!我对网络安全感到紧张,因为我对它有点陌生,但我很高兴我做得非常正确:)对网络安全感到紧张和有意识比盲目和疏忽要好你的安全问题将出现在“最终”部分-允许用户保存数据。他们的文件(和名称)将是不受信任的数据,您必须非常小心。
var oReq = new XMLHttpRequest();
oReq.onload = function() {
    fileNames = JSON.parse(this.responseText);
};
oReq.open("get", "get-data.php", true);
oReq.send();
function getMapInfo(fileName){
    $.get(fileName, function(result) {
        var map = JSON.parse(result);
        mapData.push(map);
    });
 }