2014-03-27 3 views
1

내 레일 2.3.X 애플리케이션에는 다른 많은 리소스 아래에 중첩되어 직접 노출되지 않는 사용자 리소스가 있습니다. 나는 "/ 사용자"또는 "/ 사용자-어떤-의 잘못된 URL을"공격 할 때잘못된 URL을 입력하면 레일스가 라우팅 오류를 발생시키지 않습니다.

map.resources :resource1 do |r| 
    r.resources :users 
end 
map.resources :resource2 do |r| 
    r.resources :users 
end 
# map.resources :users is not mentioned any where. 

는 라우팅 오류가 표시하지만 "/ 사용자"를 쳤을 때 그것은 바람직하지 않은 users_controller의 index 액션에 저를합니다. 나는 동일한 라우팅 오류를 원한다.

어떻게 구할 수 있습니까? 미리 감사드립니다. 이것은 레일이 응용 프로그램이기 때문에

답변

0

는, 그래서 한 당신은 사용자가 컨트롤러를 가지고 route.rb

map.connect ':controller/:action/:id' 
map.connect ':controller/:action/:id.:format' 

의 하단에있는 기본 경로가, 그 컨트롤러로 이동합니다. 해결책은 단순히이 두 줄을 제거하는 것입니다. 이 두 줄을 제거하면 여러 가지 원치 않는 요청으로부터 사용자를 보호 할 수 있습니다.

+0

굉장한 짐. 그것은 작동! –

관련 문제