2011-04-21 2 views
4

Heroku에서 실행중인 레일 앱에 대한 크롤러 액세스를 제한하고 싶습니다. 아파치 또는 nginX를 사용했다면 이것은 곧장 앞으로의 작업이었을 것입니다. 앱이 Heroku에 배포 되었기 때문에 HTTP 서버 수준에서 액세스를 어떻게 제한 할 수 있는지 잘 모르겠습니다.악성 크롤러가 Heroku에 배포 된 레일 앱을 크롤링하지 못하게하려면 어떻게해야하나요?

robots.txt 파일을 사용해 보았지만 위반하는 크롤러는 robot.txt를 사용하지 않았습니다.

1)에 대한 액세스를 제한 할 수있는 레일 층에있는 before_filter :

이 내가 생각하고있는 솔루션입니다.

2) 랙 기반 솔루션은 액세스

이 문제를 해결하기 위해 더 나은 방법이 있는지 궁금 오전를 제한 할 수 있습니다.

+1

"악의적 인 크롤러의 대부분이 robot.txt를 존중하지 않습니다." 나는 그것이 모두라고 생각한다. 악의적 인 경우 "robot.txt"= 무시 된 파일 –

+2

허니팟 솔루션에 대해 읽었습니다. 크롤링해서는 안되는 URI가 하나 있습니다 (robots.txt에 넣으십시오). 어떤 IP가이 URI를 호출하면 차단합니다. 랙 미들웨어로 구현했기 때문에 히트가 전체 레일 스택으로 이동하지는 않습니다. – Wukerplank

+0

@Wukerplank, 흥미로운 해결책입니다. 제가이 투표를 할 수 있도록이 의견을 답으로 게시 하시겠습니까? 기사에 대한 링크가 있습니까? –

답변

9

허니팟 솔루션에 대해 읽었습니다. 크롤링해서는 안되는 URI가 하나 있습니다 (robots.txt에 넣음). 어떤 IP가이 URI를 호출하면 차단합니다. 랙 미들웨어로 구현했기 때문에 히트가 전체 레일 스택으로 이동하지는 않습니다.

죄송합니다. Google 검색을 시도했지만 원본 기사를 찾을 수 없습니다.

+3

+1. 다음은이 제안을 한 최초의 기사입니다 : http://www.madirish.net/?article=224 –