Re: защита ссылок
Андрей Василишин
a.vasilishin at kpi.ua
Tue Oct 9 20:34:02 UTC 2012
09.10.2012 21:27, Ar3s пишет:
> nginx
>
> server {
> listen 80;
> server_name site.ru;
>
> access_log /dev/null;
>
> location / {
> root /var/www/work;
> index index.html index.htm index.php;
> # rewrite ^/video/(w+)/(.+)$
> /get.php?hash=$1&filename=$2last;
> rewrite ^/video/(\w+)/(.+)$ /get.php?hash=$1&filename=$2
> last;
> }
>
> # location /video {
> location ~ ^/video/.*\.flv$ {
> root /var/www/work;
> internal;
> flv;
> }
> location ~ \.php$ {
> fastcgi_pass unix:/tmp/.fastcgi.www-data/socket;
> fastcgi_index index.php;
> fastcgi_param SCRIPT_FILENAME
> /var/www/work/$fastcgi_script_name;
> fastcgi_param QUERY_STRING $query_string;
> fastcgi_param REQUEST_METHOD $request_method;
> fastcgi_param CONTENT_TYPE $content_type;
> fastcgi_param CONTENT_LENGTH $content_length;
> include fastcgi_params;
> proxy_send_timeout 360;
> proxy_read_timeout 360;
> }
>
> -------------------------------------------------------------------------------------------------------
> get.php
> <?php
> $hash =$_GET['hash'];
> $filename = $_GET['filename'];
> $ip = md5($_SERVER['REMOTE_ADDR'].'key');
> if ($hash == $ip){
> $url=$_SERVER['REQUEST_URI'];
> $url=explode('?',$url);
> $url=$url[1];
> if (isset($url)){$filename .='?'.$url;}
> header('Content-Type: video/x-flv');
> header('X-Accel-Redirect:/video/'.$filename);
> die();
> }
> echo 'NO';
> ?>
> --------------------------------------------------------------------------------------------
> нарыл уже в сети кучу примеров. Но не работает хоть тресни. Подозреваю что
> дело либо в php скрипте либо в моих настройках либо в моих руках...
>
>
Повторюсь еще раз, включите дебаг лог для своего айпи, с виду все нормально.
Первое что может быть, не правильно считается хеш потому что
$_SERVER['REMOTE_ADDR'] будет всегда 127.0.0.1, надо либо передавать на
бекенд каким-нибудь заголовком типа X-Real-IP REMOTE_ADDR и соответвенно
скрипт подправить, либо ставить апачи mod_rpaf. Для чисто раздающего
сервера разницы в потребляемых ресурсах между php-cgi и апачи на этом
скрипте не будет никакой.
Второе, проблема с путем,в дебаг логе это будет отчетливо видно, но по
конфигам вроде этой проблемы не должно быть.
--
WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE
Подробная информация о списке рассылки nginx-ru