2012-05-25 3 views

ответ

3

Наиболее логичный и простой путь будет использовать регулярное выражение в каком-то промежуточный слое:

var url = require("url"); 

app.use(function(req, res, next) { 
    var pathname = url.parse(req.url).pathname; 
    if(!pathname.match(/^[a-z0-9\/]+$/i)) return res.send(403); 
    next(); 
}); 

Или, как URL уже разобран курьерским, но это не подвергается публично, вы можете чтобы сохранить один вызов для анализа и полагаться на внутренних экспресс (которые я бы не советовал):

app.use(function(req, res, next) { 
    if(!req._parsedUrl.pathname.match(/^[a-z0-9\/]+$/i)) return res.send(403); 
    next(); 
}); 

Это гарантирует, что ваш путь к файлу (для http://example.com/foo/bar?id=1334, путь к файлу будет /foo/bar) содержит только буквы, цифры и слеши. Он поднимает 403, если нет.

+0

Отлично! Только то, что я хотел. – georgesamper

+0

Ты очень рад =) – Pierre

1

Не можете ли вы использовать регулярное выражение для анализа разрешенных символов?

Или вы имеете в виду прямо в маршрутизации?

+0

Хорошо, как я могу использовать регулярное выражение? Я действительно ничего не знаю о том, как добиться этого. Я думал о промежуточном программном обеспечении, чтобы проверить запрос. И хочу, чтобы это было сделано во всем мире. – georgesamper

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

  • Нет связанных вопросов^_^