2013-08-15 4 views
0

Java Play Framework 2.x에서 URL 매개 변수를 숨길 수 있습니까? 나는 simular 질문을 발견했다. 그러나 그는 url 해킹을 멈추기 위해 그들을 숨기고 싶었다. 그래서 그는 URL을 숨기는 것 이외의 다른 해답을 얻었습니다.Java Play Framework를 사용하여 url의 매개 변수 숨기기

내가 정보 개체를 몇 개 가지고 있는데, URL에이 정보가 필요하므로 여러 작업, jquery 등에 전달해야하는 ID가 있습니다. 그러나 어떤 사용자도 ID를 볼 수 없도록하고 싶습니다. 예를 들어

나는이의 conf 있습니다 ../deliverablegraph?id=xxxx & contextId = YYYY

난 단지 ../deliverablegraph을 보여주고 싶은

하지만, 필요 것처럼 보였다있다

GET  /deliverablegraph   controllers.Application.deliverable_graph(id:Long,contextId:Long) 

id 및 contextId에 대한 액세스.

+2

URL 매개 변수를 숨기는 것은 거의 틀림없이 잘못된 행동입니다. 왜 당신 (당신 생각)이 이것을 할 필요가 있습니까? –

+0

ID는 사용자에게 비밀이어야합니다. 그러나 다른 페이지 (다른 솔루션을 사용할 수 있음)와 jquery에 대해 ID를 보내야합니다. 마찬가지로, 당신이 무언가를 클릭 할 때, 이것을하십시오 ("this"는 id를 사용하고 있습니다). – Kungen

+2

숨겨진 양식 필드 나 자바 스크립트 변수로 페이지의 일부로 렌더링 할 수 있지만 사용자가 숨기지는 않습니다. 자바 스크립트에 해당 값이 필요한 경우 액세스하려는 사용자가 필요합니다. 당신이 할 수있는 일은 당신의 ID로부터 어떤 종류의 해시를 생성하고 그것을 ID와 함께 전달하는 것입니다. 그렇게하면 id 값이 엉망이되었는지 확인할 수있는 방법이 생깁니다. – estmatic

답변

2

URL에 매개 변수를 숨기는 것에 대해 비슷한 문제가 있었지만 내 솔루션이 도움이되기를 바랍니다. 유일한 차이점은 JSON 데이터를 전달해야하므로 URL 매개 변수를 매우 길게 지나치지 않고 싶다는 것입니다. 비밀 정보를 전달하고 싶지 않은 문제와는 다릅니다. 제출하는 button를 사용할 필요가 없습니다

<form class='someDynamicForm' method='post' action='@routes.Application.function()'> 
    <textarea name="jsonHolder" style="display: none"> 
     "Used javascript to insert the data I want in here" 
    </textarea> 
</form> 

더 많은 유연성을 위해 :

그래서 나는 estmatic 숨겨진 양식 필드에 정보를 배치에 대한 자신의 의견에 말을했다. 당신의 경로에서 다음

public static Result function() { 
    DynamicForm dynamicForm = DynamicForm.form().bindFromRequest(); 
    String jsonData = dynamicForm.get("jsonHolder"); 
    return; 
} 

를 실행 한 다음 양식을 제출 할 준비가 될 때마다 당신은 항상 당신이 수행하여 텍스트 영역에서 정보를 검색 할 수 있습니다, 컨트롤러 끝에 이제 자바 스크립트 코드 document.someDynamicForm.submit();

를 호출 할 수 있습니다 파일은 다음과 같이 명확하게 작성하십시오.

POST  /json   controllers.Application.function() 

단점은 ID가 비밀이되기를 바랍니다. 모든 "해커"는 오른쪽 클릭 ->보기 페이지 소스를 수행해야하며 숨겨진 텍스트 필드에서 정보를 볼 수 있습니다. 당신이 그와 같은 것을 사용에 봤어

나는 웹 세션을 통해 정보를 함께 전달했던 또 다른 해결책은 사용 Play의는 http://www.playframework.com/documentation/2.1.x/JavaSessionFlash

Session에 내장되어? 사용자 ID를 많이 사용하는 것처럼 보이기 때문에 세션에 ID 정보를 저장하면 (궁극적으로 쿠키에 표시됨) 조사 할 항목이 될 수 있습니다.

+0

감사합니다! 나는 이것이 정말로 안전하지는 않더라도, 그것을 행하는 방법이라고 생각한다.처음에는 가능하지 않다고 생각했지만 기회가 있었고 여기에서 질문했습니다. – Kungen

+1

ID가 정말로 민감한 경우 ID의 해시를 조사한 다음 컨트롤러가 확인하도록해야한다고 생각합니다. – cYn

관련 문제