在 Nodejs、Azure 中禁用目录浏览

问题描述 投票:0回答:2

我正在尝试禁用托管在 Azure 上的节点中的目录浏览。

这是我的根文件夹,我想禁用浏览。

以下是我的index.js文件

const express = require('express');

const publicweb = './';
const app = express();

app.use(express.static(publicweb));
app.disable('x-powered-by');
console.log(`serving ${publicweb}`);

app.get('*', (req, res) => {
  res.sendFile(`index.html`, { root: publicweb });
});

const port = process.env.PORT || '3500';
app.listen(port, () => console.log(`API running on localhost:${port}`));

我不希望从前端应用程序访问这些文件。

node.js azure directory azureportal
2个回答
0
投票

您可以尝试创建一个 web.config,在底层 Azure 使用 IIS 来为您的应用程序提供服务

<?xml version="1.0" encoding="utf-8"?>
<configuration>
     <system.webServer>
       <webSocket enabled="false" />
          <handlers>
                <add name="iisnode" path="app.js" verb="*" modules="iisnode"/>
          </handlers>
          <rewrite>
               <rules>
                    <rule name="NodeInspector" patternSyntax="ECMAScript" stopProcessing="true">                    
                        <match url="^app.js\/debug[\/]?" />
                    </rule>
                    <rule name="StaticContent">
                         <action type="Rewrite" url="public{REQUEST_URI}"/>
                    </rule>
                    <rule name="DynamicContent">
                         <conditions>
                              <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="True"/>
                         </conditions>
                         <action type="Rewrite" url="app.js"/>
                    </rule>
               </rules>
          </rewrite>
          <security>
               <requestFiltering>
                    <hiddenSegments>
                         <remove segment="bin"/>
                    </hiddenSegments>
               </requestFiltering>
          </security>
          <httpErrors existingResponse="PassThrough" />
          <iisnode watchedFiles="web.config;*.js" debuggingEnabled="false" />
     </system.webServer>
</configuration>

0
投票

对于 Node.js 服务器,

const express = require('express');
const app = express();
app.use('/your_directory', express.static('./your_directory', { index: false }));
app.listen(3000, () => {
  console.log('App listening on port 3000');
});

.htaccess 文件: 选项-索引

蔚蓝:

  1. 在站点的主目录中创建(或编辑)web.config 文件

  2. 编辑如下:

© www.soinside.com 2019 - 2024. All rights reserved.