[英]How do I securely reference ASP classic include files outside of web root?
我希望能够将所有ASP Classic包含的文件放在Web根目录之外。 这确保不能通过URL直接调用包含文件。
完成此任务的最佳方法是什么?
我知道我可以使用虚拟目录来引用web root之外的includes文件夹,但是这还不允许通过URL直接访问该目录吗? 也许我误解了虚拟目录的本质。
从这篇文章 :
(我自己永远不需要这样做)
了解。 在默认网站“内部”创建一个虚拟目录,指向工作文件夹“外部”的文件。 在您的代码中引用指向正常结构之外的文件夹/文件的虚拟目录。 例如
您的默认网站是名为c:\\ websites \\ example.com的本地文件夹。 在example.com下,您的所有文件夹和文件。 但是,在名为D:\\ MyWebsiteIncludes的文件夹中,名为FileServerA的文件服务器上需要的文件。 UNC路径为\\ FileServerA \\ D $ \\ MyWebSiteIncludes或者如果您在文件夹上创建共享,\\ FileServerA \\ MyWebsiteIncludes在Web服务器上,创建映射到共享路径的虚拟目录。 您需要确保配置正确的凭据以访问远程服务器上的文件。
我能够检查Diodeus回答中提到的程序,它确实有效。
E:\includes\
\include.asp
\another.asp
E:\websites\
\business-website.com\
\config.asp
\default.asp
\personal-website.com\
\config.asp
\default.asp
\whatever-website.com\
\config.asp
\default.asp
business-website.com -> E:\websites\business-website.com\
v. dir /include -> E:\includes\
personal-website.com -> E:\websites\personal-website.com\
v. dir /include -> E:\includes\
whatever-website.com -> E:\websites\whatever-website.com\
v. dir /include -> E:\includes\
注意:虚拟目录未转换为应用程序。
default.asp
Files in current directory:
<!-- #include file="config.asp" -->
Files in current directory (using virtual path):
<!-- #include virtual="/config.asp" -->
Files in include directory:
<!-- #include virtual="/include/include.asp" -->
include.asp
Files in current directory:
<!-- #include file="another.asp" -->
Files in current directory (using virtual path):
<!-- #include virtual="/include/another.asp" -->
Files in root application:
<!-- #include virtual="/config.asp" -->
这使得将所有包含文件合并到一个地方变得更加容易。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.