我现在正在同一框架上运行一些node.js服务器。沿着框架代码的某个地方,我有这个小片段:
//...
if (subdomain.staticFolder) {
let relativePath = subdomain.staticFolder + path.sep + path.normalize(url);
if (fs.existsSync(relativePath)) {
let fileStats = fs.statSync(relativePath);
if (fileStats.isFile()) {
//...
此代码段位于管理请求流量的处理程序内。简而言之,它的工作是在static/
文件夹中查找域,并查看是否有文件符合请求。
我担心的是,恶意用户可能会利用这种静态文件查找方法来冒犯并试图获得对Web服务器文件的访问权限。例如:
https://www.example.com/../index.js
https://www.example.com/../serverStructure.json
这可能吗,还是我很担心?而且,如果有可能,什么是潜在的解决方案?将静态文件移动到S3存储桶是否可行?即使不可能,这仍然是不好的后端实践吗?