2012-07-19 3 views
2

wkhtmltopdf은 웹킷 브라우저로 브라우저보기의 스크린 샷을 만들 수 있습니다.wkhtmltopdf의 sfGuard 토큰 로그인

로그인이 필요한 Symfony 1.4 응용 프로그램이 있는데, wkhtmltopdf를 사용하여 "이 페이지 인쇄"기능을 만들고 싶습니다.

어떻게 안전하게 처리 할 수 ​​있습니까? 나는 wkhtmltopdf가 사용자의 암호를 사용하지 않고 로그인 할 수있는 인쇄 버튼을 위해 각 화면에 일회용 토큰을 만드는 방법을 생각하고 있습니다.

구조화 방법에 대한 제안 사항이 있으십니까?

답변

1

이 문제에 대해 "로그인 상태 유지"기능을 사용하도록 결론을 내 렸습니다.

+0

정확히 똑같은 문제가 발생했습니다. "로그인 유지"를 사용하여 어떻게 해결 했습니까? 시도했지만 여전히 현재 페이지 대신 "인증 페이지"pdf를 인쇄합니다. – JavierIEH

0

다른 인쇄 프레임 워크를 고려해 보시겠습니까? jquery 플러그인 (예 : https://github.com/ianoxley/jqueryprintpage#readme)은 어떻게됩니까? 이렇게하면 세션 외부의 제한된 영역에 대한 액세스를 허용하지 않아도됩니다.

여전히 wkhtmltopdf을 사용하려면 url과 user_id를 수신하고 고유 한 토큰을 만드는 작업을 쉽게 만들 수 있습니다.이 토큰을 DB 또는 키 - 값 캐시에 저장할 수 있습니다. 시스템 아키텍처). 사전에 고유 한 토큰을 만들지는 않을 것입니다. 사용자가 인쇄물을 요청할 때 필요할 때마다 만드는 것이 더 좋습니다.

당신은

1) 사용자 지정 보안 필터를 생성, 보안 행동에 인쇄를 가능하게하기 위해 옵션이 몇 가지있다. 필터에서 인증 된 요청 외에도 url과 사용자의 올바른 조합으로 "토큰"매개 변수가 포함 된 요청을 허용해야합니다.

2) 작업을 보안 해제로 변경하십시오. 보안 필터를 변경하지 않으려면 각 작업을 "보안되지 않음"으로 변경하고 요청이 인증되었는지 또는 적절한 토큰 매개 변수가 있는지 확인하는 함수를 만들어야합니다.

토큰을 추측하기가 더 어렵도록 한 번 사용한 후에는 각 토큰을 제거하는 것이 현명합니다.

또한 사용하지 않았던 오래된 토큰을 지우는 정기 작업자를 만들 수도 있습니다.

0

접근 방식을 이미 결정 했음에도 불구하고 다른 사람들이이 문제를 보는 데 도움이 될 수있는 대체 옵션을 하나 더 추가하려고합니다.

또 다른 대체 경로는 페이지의 현재 소스가보고있는 잡아

$.post("/printer", document.documentElement.outerHTML); 

처럼 당신은 또한 쉬운 방법으로 HTML을 사전 처리 할 수 ​​있습니다 이런 식으로 뭔가를 사용하여 프린터 백엔드에 그것을 게시 할 수 있습니다. 백업 한 사용자는 먼저 HTML을 저장 한 다음 이미지를 변환하거나 예를 들어 인쇄 할 때 사용하지 않을 페이지 일부를 제거 할 수 있도록 구문 분석 할 수 있습니다.

관련 문제