0

에 Paramater 숨기기, 나는 LINK_TO 태그를 통해 A의 id 사용자를 전달하고있다 :레일 : 사용자 A로부터받은 메시지에 답장을하기 위해 URL

<%= link_to "Reply", new_message_path(:id => @user.id), class: "button" %> 

내가 다음받는 사람이 있는지 확인 할 수 있습니다 @ 사용자. 그러나 문제는 메시지보기 양식을 보내는 새보기가 열리면 URL에 사용자 A의 ID도 있다는 것입니다. 어떻게 숨길 수 있습니까? 다른 사람이 매개 변수를 쉽게 변경할 수 있기 때문에 사용자 A 대신 다른 사용자에게 메시지를 보낼 수 있습니다.

+1

사용자 정의 permalink를 사용할 수 있습니다. "Permalink"를 통해 할 수 있고, 사용자 정의 permalink가 있으며, permalink는 md5를 생성 할 수 있습니다. 기타 –

답변

2

ID가 필요한 경우 매개 변수를 어떻게 든 보내야합니다. 당신은 그것을 숨기고 싶지 않을 수도 있습니다.

누군가 다른 사람에게 메시지를 보내도록 URL을 변경하면 기꺼이 그렇게합니다.

사용자가 특정 사용자에게만 메시지를 보낼 수 있도록하려면 권한을 설정해야합니다.

매개 변수를 숨기지 않아도 아무 것도 얻을 수 없습니다.

+0

좋아, 나는 사용자가 특정 사용자에게만 메시지를 보낼 수 있도록 내 문제를 해결할 수 있도록 before_filter를 구현했습니다. 추가 보안을 위해 매개 변수를 숨길 수 있는지 궁금합니다. 그건 중요하지 않습니다. 감사. – pratski

+0

당신은 @Benjamin Sinclaire가 언급 한 것처럼 post 방법을 사용할 수 있습니다. 그러나 나는 그것에 신경 쓰지 않을 것입니다. 추가 보안은 제공하지 않지만 매개 변수가 URL에 표시되지 않게합니다. – Arjan

0

이 구문을 사용하면 여전히 이런 문제가 있습니까?

<%= link_to "Reply", new_message_path(@user), class: "button" %> 

컨트롤러 액션의 '작성'코드는 무엇입니까?

1

수 없습니다.

나는 그것을 숨길 수 있고 id에 숨겨진 필드와 POST 메서드를 사용할 수 있지만 위험은 동일 할 수 있습니다. 누구나 ID를 변경할 수 있습니다.

"사용자가 다른 사용자에게 메시지를 보낼 수 없도록 내 메시지 시스템을 보호하는 방법"에 대해 스스로에게 질문해야합니다. 긴 임의의 문자열과 같이 메시지에 토큰 필드를 만들고이 토큰을 사용하여 메시지가 올바른 사용자에게 전송되었는지 확인하는 것이 좋습니다. 약간의 코딩이 필요하지만 응용 프로그램에서 보안을 필요로합니다.