2012-05-25 5 views

답변

3

일부 미들웨어에 정규식을 사용하는 것입니다 이동하는 가장 논리적이고 쉬운 방법 : URL이 이미 익스프레스에 의해 구문 분석됩니다 만, 공개적으로 노출되지 않는

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(); 
}); 

또는, 당신은 할 수 있습니다 구문 분석하고 (내가 조언하지 것이다) 익스프레스 내부에 의존하는 하나의 호출을 저장합니다 :

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