2013-02-03 3 views
3

내가 얻으려고하는 것은 사용자에게 일회성 비디오 링크를 만드는 것입니다. 링크가 만료되는 동영상을 본 사람들은 링크가 원래 생성 후 1 시간 만료된다고 말합니다.php dynamic video url

문제는 어떻게 해결할 것인가입니다. 나는 이렇게 말할 수 동적으로 PHP와 SQL

에 값을 전달하는 mod_rewrite를 사용할 수 있습니다

mysite.ltd/get_video/Jn12lM2NMZ21oMW312/11111111/The-Amazing-Spider-Man.mp4 

내역 : get_video는, Jn12lM2NMZ21oMW312 임시 토큰 및 11111111는 타임 스탬프입니다 get_video.php입니다 The-Amazing-Spider-Man.mp4 파일 이름입니다.

토큰 유효성 검사에서 실패 할 것이므로 다른 사용자가 비디오 링크를 공유하면 비디오 페이지 방문시 토큰 + 타임 스탬프가 생성되어 SQL에 삽입됩니다. 이는 get_video와 비교됩니다 현재 사용자의 IP와 SQL의 해시 토큰에 해싱 된 IP입니다.

이 방법을 사용하는 방법에 대한 내 견해입니다. 그러나 더 나은 솔루션이 있는지 궁금합니다.

답변

1

토큰 및 타임 스탬프를 저장할 필요조차 없습니다. 사용자가 방문 한 번

$token = somehash($ip_address . $timestamp . $secret); 

$url = 'http://xxx/' . $token . '/' . $timestamp . '/filename'; 

당신이 사용자의 데이터를 해시를 다시 실행 URL : 당신이 원하는 것은 사용자의 IP 주소의 해시, 타임 스탬프 및 (바람직하게는 모든 사용자에 대해 고유하게 생성 된) 일부 좋은 긴 비밀 소금입니다 . 동등하고 요청이 만료되지 않은 경우에도 동영상을 제공합니다.

+0

오 그 생각하지 않았다 –

0

토큰이있는 부분이 있습니다. 토큰은 현재 세션에서만 유효하거나이 링크가 동일한 페이지에서 동영상 스트리밍에 사용되는 경우 각 요청에 대해 토큰을 생성하면됩니다. 안전한 토큰을 생성하기 위해 내가 config.php에 저장하는 것을 선호하는 몇 가지 비밀 소금 변수를 사용할 수 있습니다. 기본적으로 모든 프레임 워크는 소금을 생성합니다 ..

일반적으로 데이터베이스에 ID가있는 비디오/파일 이름을 저장합니다. 그래서 파일 경로를 구성하고, 토큰을 검증하고, 머리글을 사용하여 다운로드하고 첫 번째 주석을 readfile() 체크 아웃하는 코드를 강요 할 수 있습니다. 그런 식으로 아무도 파일의 위치를 ​​알 수 없습니다.

+0

아하, 그래서 나는 옳은 길을 가고 있었다. 감사합니다. –