今天,一位技术人员问我,jQuery (或一般情况下的JavaScript )是否可以回到它的来源,不需要使用可执行代码就能获得有关文件系统的信息。我的回答是,如果不使用AJAX、ASP.NET或其他可执行技术,IIS就不可能允许这种情况发生。换句话说,从静态HTML页面运行的JavaScript不可能提取来自它的way服务器的信息。
再说一次,这是膝盖的回答,只是出于安全考虑,这是不可能的.但是,我并不是一个无所不知的JavaScript/jQuery专家,所以我向大家介绍了这一点。如果你知道一种方法可以做到这一点,或者如果你知道它是不可能完成的,无论是哪种方式,我感谢你的反馈。
谢谢。
-Jessy Houle
到目前为止,这些解决方案都需要服务器端技术,无论是ASP、ASP.NET、PHP、Web等等。为了更好地说明问题,我将给出确切的场景。
这里有一组10个HTML文件,都是静态的,只有HTML/CSS/JavaScript位于IIS CSS服务器上的一个网站上。不允许使用ASP、ASP.NET、PHP和所有其他服务器端技术。这10个HTML文件的名称和大小都会发生变化,等等。需要解决的问题是在那个时间点显示该目录中的文件的信息(如果没有启用目录浏览,我会添加)。
我认为如果不使用某种服务器端技术,第3步是不可能的。但是,我只想确保我没有听说过新的黑客攻击。
发布于 2009-09-29 18:58:48
不,除非not服务器以某种方式发布此信息,否则是不可能的。正如您所说的,一个可执行文件需要在某个点运行(要么发布静态信息,要么在请求时进行动态检查)。AJAX的工作方式是在后端有URL。如果没有URL来获取文件系统信息,则不可能。
上面的答案概述了如何使其成为可能,这些答案都依赖于在某个时候运行可执行代码来将信息发布到URL。我必须读两遍这个问题,才能确定发问者来自安全,而不是“如何”。
发布于 2009-09-29 18:39:17
编辑
在您在问题的第二部分中描述的特定场景中,我不得不说no。我真的不明白你怎么可能只使用Javascript来决定服务器上的数量、文件大小和名称。
以前,我曾说过,只要您允许自己使用大多数浏览器中可用的XML请求对象Javascript实现,并且允许通过标识服务器上运行的服务器软件来推断某些文件系统信息(也就是说,如果是IIS,则可能是NTFS,如果是Appache,则可能是ext3)。等等)。诚然,这不是一个完美的解决方案,而且充其量也是一个讨厌的解决方案。
此页面演示如何使用XML请求对象。特别是,请查看演示如何获取HTTP标头的示例。从这里开始,您所需要做的就是向托管javascript文件的服务器发出请求,然后检查 server 头行,它应该告诉您您请求的文件所在的服务器。
发布于 2009-09-29 19:13:16
我唯一能想到的不需要使用服务器端脚本的方法是允许目录浏览,并使用隐藏框架在浏览器中加载目录,然后使用JavaScript解析隐藏框架的HTML并从中获取所需的信息。
但这是一个黑客,不是一个很好的解决方案。此外,它可能违反了您的无目录浏览规定--虽然普通用户无法直接查看该目录,因为它是可索引的,而且因为您将它显示在隐藏的框架中,但是对于某个人来说,想清楚如何查看该目录的内容并不需要花费太多时间。
https://stackoverflow.com/questions/1494186
复制相似问题