User Tools

Site Tools


ru:new_rotation_hints

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
ru:new_rotation_hints [2017/10/02 08:28]
admin [Тематические фильтры]
ru:new_rotation_hints [2017/11/23 15:30] (current)
admin [Site with main niches]
Line 1888: Line 1888:
  
   ​   ​
 +  ​
 +===== Content protection =====  ​
 +
 +По дефолту контент лежит в scj/​thumbs/​galleries/​.../​1.jpg и условно мувик к нему scj/​thumbs/​galleries/​.../​1.flv
 +
 +На странице мы выводим <img src='/​scj/​thumbs/​galleries/​.../​1.jpg'>,​ и в проигрывателе мувиков что-то вроде file: /​scj/​thumbs/​galleries/​.../​1.flv
 +
 +И серфер видит прямой линк на /​scj/​thumbs/​galleries/​.../​1.flv и может скачать мувик. Например,​ мы решили сделать жизнь пользователя немного тяжелее и не дать ему скачать по прямой линке. Как это сделать (из расчета что у нас nginx):
 +
 +1. сначала в конфиге nginx запретим скачивать файлы напрямую ​
 +
 +<​code>​
 +location ~* /​scj/​thumbs/​galleries/​.*\.(flv)$ {
 +   deny all;
 +}
 +</​code>​
 +
 +и добавляем туда же секретную локацию
 +
 +  location /protected {
 +            root /var/www;
 +            internal;
 +  }
 +
 +
 +2. немного подправим темплейт. Например сейчас он выглядит примерно так ​
 +
 +  <a href='<​!--IMG_1_IMAGE-->'><​img src='<​!--IMG_1_THUMB-->'></​a>​
 +
 +
 +что нам дает примерно такой результат ​
 +
 +  <a href='/​scj/​thumbs/​galleries/​482/​850/​1_201.flv'><​img src='/​scj/​thumbs/​galleries/​482/​850/​1_t.jpg'></​a>​
 +
 +мы добавим /​content.php?​check=<?​=time()?>&​url=
 +
 +  <a href='/​content.php?​check=<?​=time()?>​url=<​!--IMG_1_IMAGE-->'><​img src='<​!--IMG_1_THUMB-->'></​a>​
 +
 +и в результате получится ​
 +
 +  <a href='/​content.php?​check=1511450638&​url=/​scj/​thumbs/​galleries/​482/​850/​0_771.flv'><​img src='/​scj/​thumbs/​galleries/​482/​850/​0_t.jpg'></​a>​
 +  ​
 +
 +3. создаем content.php ​
 +  ​
 +<​code>​
 +<?php
 +if (!$_GET['​check'​] or $_GET['​check'​] < time() - 86400) {
 + die("​Error link"​);​
 +}
 +
 +header("​X-Accel-Redirect:​ /​protected/"​ . $_GET["​url"​]);  ​
 +
 +</​code>​
 +
 +
 +Итого если вы настроили верно nginx то при прямом запросе /​scj/​thumbs/​galleries/​482/​850/​0_771.flv должно выдавать 403. 
 +
 +По линке /​content.php?​check=1511450638&​url=/​scj/​thumbs/​galleries/​482/​850/​0_771.flv должно отдавать файл, тут 1511450638 - это просто unix time. Его можно заменить на что угодно.
ru/new_rotation_hints.txt · Last modified: 2017/11/23 15:30 by admin