2010-06-18 6 views
0

저는 며칠 동안 새로운 레일 프로그램을 준비했습니다. 나는 우분투 10.4 apache2 웹 사이트가 아닌 다른 위치에서 그것을 실행하고있다 (그것은 물리 치료사를위한 독립 실행 형 데이터베이스 응용 프로그램입니다). 내가 지금 만든 사람들은 웹 사이트 의 공개 부분에 자신의 웹 사이트를 배포하고 싶습니다. 한 번만 변경하면됩니다. 사람들은 에있는 링크를 통해 그것을 공개하는 사람들은 하나의 버튼을 클릭해서는 안됩니다!RoR 프로그램 외부에서 세션 해시를 설정 하시겠습니까?

내가보기에이 같은 일을 생각하고 있었는데 :

<% if session[:inside]%> 
    <%=button_to 'Sækja mælitæki', @link_to_mt%> 
<%end%> 

어떻게 세션 설정할 수 있습니다 : 프로그램이 웹 페이지의 개인 부분 내에서 을 시작한 경우에만 true로 [내부]? 나는 두 개의 새로운 액션을 만들려고 생각했다. 다른 세션은 [: inside] 세션을 true로 설정하고 다른 하나는 false로 설정 하겠지만, 보안상의 위험이있는 것 같다. 그렇지 않습니까?

BR, 신 드리는

+0

개인 부분 및 공용 부분은 무엇입니까? 컨트롤러인가요? – Filip

+0

개인 및 공공 부분은 내 프로그램의 일부가 아니며 내 프로그램에 연결해야하는 다른 웹 사이트입니다. –

답변

1

당신은 리퍼러를 사용할 수 있습니다.
이것은 방탄 솔루션이 아니며 모든 요청에서 리퍼러를 삭제하는 많은 플러그인 (예 : Firefox 용)이 있습니다.

<% if request.referer.start_with? "your.internal.site" %> 
    <%=button_to 'Sækja mælitæki', @link_to_mt%> 
<%end%> 

버튼의 기능은 무엇입니까? 우연히 눈에 띄면 보안 위험이 크지 않습니까?

+0

고마워, 그게 내가 찾고 있던 바로 그거야. 컨트롤러에서이 코드를 사용하여 쿠키를 설정 한 다음 쿠키가 설정된 경우 단추를 렌더링하여 사용자가 내 페이지의 다른 곳으로 이동하여 시도해 볼 수 있도록 표시 할 수 있습니다.) 보안 및 심미적 인 문제로,이 버튼을 사용하면 참조 페이지에 대한 내부 액세스 권한이있는 사용자 만 pdf 파일을 다운로드 할 수 있지만 다른 컨트롤러를 사용하여 다운로드를 제어하므로 내가 안전하다고 생각해.) –

관련 문제