2011-08-11 5 views
2

저는 Spring에 비교적 익숙하지 않습니다 만, Spring Security와 Grails에는 새로운 것이 있습니다. 요약하면 .jsp 파일을 서비스 할 수 없도록 권장하고, WEB-INF로 던져서 컨트롤러를 올바른 위치에서 가져 오도록 설정해야합니다.gsp 파일 보안하기

Grails에서 어떻게해야합니까? gsp를 WEB-INF로 던지고 모든 컨트롤러에 논리를 쓰면 "컨벤션 오버 컨벤션"아이디어가 파괴 될 것 같습니다. (만약 가능하다면 ...) 기본 Grails 구성을 변경해야 할 것 같습니다. .

아이디어가 있으십니까?

답변

2

OK, 나는 여기에 대한 완벽한 해답을 보지 못했다 (또는 다른 일에 StackOverflow) 전체 유효한 결과를 제공합니다, 그래서 여기에 내가 가지고 올 한 내용은 다음과 같습니다

첫째, 새로운 컨트롤러를 만들 : 오픈 grails-app/conf/UrlMappings.groovy을 다음

index = { 
    response.status = 404 
} 

static mappings closu에 따라 본을 추가

grails create-controller gspForbidden 

열기 이것을, 인덱스 액션이 추가 재 :

"/grails-app/**.gsp"(controller:"gspForbidden") 

이것은 gspForbidden 컨트롤러에 직접 GSP를 볼 수 어떤 시도를 리디렉션합니다. 그 컨트롤러는 차례로 단순히 응답을 찾지 못한 파일을 렌더링합니다. 이것에 대한 가장 좋은 점은 완전히 숨겨져 있다는 것입니다. GS 경로가 정확하다는 것을 보여주는 것은 없으므로 애플리케이션 디자인에 중요한 요소가 노출 될 확률이 적습니다.

UrlMappings을 사용하여 컨트롤러없이 404를 표시하는 방법을 반복적으로 시도했지만 성공하지 못했습니다. 생각할 수있는 방법이 있으면 알려주세요. 나는 오히려 어떤 명시 적 컨트롤러없이 이런 일이 일어나기를 바랄 것이다.

+0

당장은 귀하의 제안을 따를 것입니다. 컨트롤러에서 멀리 떨어져 있고 싶은 특별한 이유가 있습니까? 스프링 보안을 올바르게 설정했다면, HTTP 메소드 보호에 관해서는별로 걱정할 필요가 없습니다. 그동안, 다운 타임이 생기면, 당신이 제안한대로 개선 할 방법을 찾으려고 노력할 것입니다. – avgvstvs

+0

청결을 위해서. 그것은 전체 클래스와 컨트롤러가 404 에러를 발생시키는 것은 어리석은 것처럼 보입니다. :-) 마침내 나는 UrlMappings 클래스 (10 개 정도의 클래스가 있음)를 추적하여 작동 방식을 파악했으며 컨트롤러가 없으면 가능하지 않다고 생각합니다. 큰 문제는 아닙니다. – OverZealous

0

Grails에서 실제로 걱정할 필요가 없습니다. 보기 및 컨트롤러 사용 규칙을 따르면 GSP 페이지에 직접 액세스 할 수 없도록하는 모든 세부 정보를 처리합니다.

스프링 보안과의 통합에 관해서는 권장 된 패턴 (컨트롤러 내의 URL 보안 또는 주석)을 따르는 경우에도 괜찮을 것입니다. 봄 보안 플러그인 문서에서

1

:

package com.testapp 
import grails.plugins.springsecurity.Secured 

class SecureController { 

    @Secured(['ROLE_ADMIN']) 
    def index = { 
     render 'Secure access only' 
    } 
} 

위의 예와 같은 GSP 페이지를 보호 할 수 있습니다. 보안 된 주석은 관리자 권한이있는 사용자에게만 액세스 권한을 제공합니다.

http://grails-plugins.github.com/grails-spring-security-core/docs/manual/

튜토리얼 시작으로 좋은 있습니다에

자세한 내용은, 참조하십시오. 이전 게시물에

2

약간의 보정 :

그냥 (그것은 작동, 난 그냥 그것을 시도) 직접 타격에서 GSP의 삶을 어디 추측 사람을 방해하지 않는 Grails의의 규칙을 준수.

+0

시도하고 싶은 사람들은 배포 된 grails 앱으로 이동하여 '/grails-app/views// .gsp'로 이동하십시오. Yikes! 꽤 중요한 보안 구멍이있는 것 같습니다. – OverZealous

+0

이것을 확인해 주셔서 감사합니다 ... 지금 GSSP-J 수업을 듣고 있으며 Grails를 배우고 있습니다. 코스의이 부분은 경종을 울리게 만들었습니다 ... 당신의 일에 감사드립니다, Bill and OverZealous! – avgvstvs