在浏览器中直接访问Node.js文件

时间:2019-11-18 07:02:17

标签: node.js plesk

在Plesk服务器上,将在命中URL上运行nodejs和reactjs,但当我们命中js文件的nodejs文件url时,它直接在浏览器中打开,这意味着nodejs文件不安全。

1 个答案:

答案 0 :(得分:0)

因此,听起来您正在使用DECLARE @json nvarchar(max) = N'{ "extrapolationLevel":1, "branchNames":[ "name" ], "leafNames":[ "count(*)" ], "values":{ "Loading of page /webpage/page/Page1.asp":[ 4 ], "Loading of page /webpage/page/Page3.asp":[ 4 ], "Loading of page /webpage/page/Page2.asp":[ 3 ], "Loading of page /webpage/page/Page4.asp":[ 2 ], "Loading of page /webpage/page/Page5.asp":[ 7 ], "Loading of page /webpage/page/Page6.asp":[ 3 ] } }' CREATE TABLE Data ( [Date] datetime, [Log] nvarchar(max) ) INSERT INTO Data ([Date], [Log]) VALUES (GETDATE(), @json) ,但用户仍可以获取您不打算转到客户端的服务器文件。显然,这意味着您已将express.static指向包含服务器文件的目录。相反,您需要将SELECT d.[Date], j1.[key] AS [Page], j2.[Count] FROM Data d CROSS APPLY OPENJSON(d.[Log], '$.values') j1 CROSS APPLY OPENJSON(j1.[value]) WITH ( [Count] int '$' ) j2 指向仅包含要发送给客户端的文件的目录层次结构。这意味着它必须是与服务器文件不同的目录,并且必须不在服务器文件目录的上方。

有很多可能的放置位置。这是组织事物的几种方法:

Date                Page                                    Count
18/11/2019 17:48:02 Loading of page /webpage/page/Page1.asp 4
18/11/2019 17:48:02 Loading of page /webpage/page/Page3.asp 4
18/11/2019 17:48:02 Loading of page /webpage/page/Page2.asp 3
18/11/2019 17:48:02 Loading of page /webpage/page/Page4.asp 2
18/11/2019 17:48:02 Loading of page /webpage/page/Page5.asp 7
18/11/2019 17:48:02 Loading of page /webpage/page/Page6.asp 3

然后,当从serverFiles目录运行服务器代码时,将使用如下所示的express.static()

express.static()

或者,您可以这样做:

projectDirectory
    serverFiles
        server.js
    clientFiles
        index.html
        login.html

想法是clientFiles目录层次结构仅包含客户端文件,并且默认情况下express.static()不允许URL中的const path = require('path'); app.use(express.static(path.join(__dirname, "../clientFiles"))); 语法位于其上方。