2016-11-06 4 views
0

Я хочу защитить папку и ее содержимое, перенаправив пользователя обратно к индексу.Проложите всю папку и ее содержимое

Я пробовал это, но он работает только частично.

var express = require('express'); 
var path = require('path'); 
var http = require('http'); 
var app = express(); 


app.set('port', 8080); 
app.set('view engine', 'ejs'); 
app.use(express.static(path.join(__dirname, 'views'))); 

app.get('/', function(req, res) { 
    res.render('index.ejs'); 
}); 

app.get('/protected/*', function(req, res, next) { 
    res.redirect('/'); 
    next(); 
}); 

//activating server 
http.createServer(app).listen(app.get('port'), function(){ 
    console.log('Express server listening on port ' + app.get('port')); 
}); 

Эти маршруты, например, "локальный: 8080/защищенный" и "локальный: 8080/защищенный/ASDF", но не "локальный: 8080/защищенный/otherPage.html".

В этом случае asdf не является фактическим файлом, а otherPage.html является. Поэтому, если файл там, он не перенаправляет, но если он не является, он перенаправляет. Почему это?

ответ

1

Ваша линия, связанная со статическими файлами app.use(express.static(path.join(__dirname, 'views'))); появляется перед app.get('/protected'), поэтому ее сначала сопоставляют.

Если вы переместили статический обработчик на более поздний код, это будет работать так, как вам нужно.

Тем не менее, я бы рекомендовал разбивать статические элементы в отдельной папке, чтобы защитить от случайного выявления любого кода на стороне сервера, который может быть включен в файлы ejs в папке представлений.

+0

Это работало для перенаправления. Я использовал «jQuery.get» для добавления частей html в индекс для его создания. Однако это решение предотвращает это. Что значит разделение статических элементов на отдельные папки? – Waltari

+1

, если вы ставите свои статические элементы (css, images и т. Д.) В другую папку: 'app.use ('/ static /', express.static (path.join (__ dirname, 'static'))); нет никакого риска, что вы можете позволить своим файлам .ejs загружаться как-то –

Смежные вопросы