【发布时间】:2014-02-24 11:50:20
【问题描述】:
在 EJS 中做一个简单的网站很难。
我在我的服务器文件中设置了这个:
//Use the .html extension instead of having to name the views as *.ejs
server.engine('.html', require('ejs').__express);
// This avoids having to provide the extension to res.render()
server.set('view engine', 'html');
//set up directory to serve css and javascript files
server.use(Express.static(__dirname, '/views'));
这很好用。我有 HTML 文件,我有图形,我有 CSS。我用一个呈现页面的简单控制器来提供它。这些页面中没有任何动态。但我确实希望他们使用 id/password 系统进行保护,并且只通过 Express 提供服务。
访问正常,我设置了一个端点来为他们服务。我正在强制登录该端点。但问题是,如果有人知道这些文件的实际路径,他们就可以得到它们。所以,访问是 localhost:8081/admin/documentation/。但是,这些文件位于 /views/app_documents。通过输入 localhost:8081/views/app_documents/file_name.html,他们可以下载/查看内容,而无需通过我的控件。我将内容移出视图,并在我的代码中抓取它,然后提供它,但这不适用于图像或 CSS。
对于如何解决这个问题有什么建议吗?
【问题讨论】: