Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   защита от копирования полученных данных. (http://www.flasher.ru/forum/showthread.php?t=126768)

etc 26.06.2009 18:39

Barzometr, вы думаете, что POST-запрос так сложно сформировать?

mre 26.06.2009 18:40

Цитата:

Сообщение от random13 (Сообщение 831105)
я и не пытался нагнетать, я просто говорю что можно создать неудобство как для конкурентов так и для пользователей...

...так и для себя.

Barzometr, если Вы не хотите принимать во внимание ответы, то зачем спрашиваете?
Ищите способы "создать неудобство" хоть до посинения если Вам это интересно.

Barzometr 26.06.2009 18:44

Цитата:

Сообщение от __etc (Сообщение 831117)
Barzometr, вы думаете, что POST-запрос так сложно сформировать?

а как сформируете запрос с исходного сайта?
с внешнего сайта - легко.


2mre

я принимаю ответы :).

я принимаю их и рассуждаю дальше.

random13 26.06.2009 18:46

у вас кто отправлять запрос сайт или флешка?

etc 26.06.2009 18:47

Цитата:

Сообщение от Barzometr (Сообщение 831121)
а как сформируете запрос с исходного сайта?
с внешнего сайта - легко.

А как вы определите, откуда запрос пришел?

Barzometr 26.06.2009 18:47

флешка.

Добавлено через 31 секунду
Цитата:

Сообщение от random13 (Сообщение 831123)
у вас кто отправлять запрос сайт или флешка?

флешка

Добавлено через 1 минуту
Цитата:

Сообщение от __etc (Сообщение 831125)
А как вы определите, откуда запрос пришел?

$_SERVER['HTTP_HOST']; разве не подойдет?

random13 26.06.2009 18:50

а что если вместо вашей флешки начнет отправлять запрос JS

Barzometr 26.06.2009 18:51

Цитата:

Сообщение от random13 (Сообщение 831129)
а что если вместо вашей флешки начнет отправлять запрос JS

ничего, отдаст файл.

etc 26.06.2009 18:51

Цитата:

Сообщение от Barzometr (Сообщение 831126)
$_SERVER['HTTP_HOST']; разве не подойдет?

Ну, переменная будет содержать хост вашего сайта. Чем поможет?

random13 26.06.2009 18:51

вот, только это будет чужой JS)

Barzometr 26.06.2009 18:53

ладно, гиблое дело я так понял это все :).


тогда обзову громко свой проект OpenSource.

Добавлено через 1 минуту
Цитата:

Сообщение от random13 (Сообщение 831133)
вот, только это будет чужой JS)

ну, чужой, но только с другого же домена? а с других доменов запретить доступ.

Цитата:

Сообщение от __etc (Сообщение 831132)
Ну, переменная будет содержать хост вашего сайта. Чем поможет?

ммм.. да, немного не то :)

random13 26.06.2009 18:55

и адресок скажите нам =)

постараемся выкачать по максимому)

Barzometr 26.06.2009 18:57

а вот вам задачка для решения :).

попробуйте сюда сделать запрос с POST.
http://lebedenko.ru/2/test.php

должно получиться вот что http://lebedenko.ru/2/tt.html . Ответ: zapros s POST

запрос формируйте с параметрами info=yes.

Вот флешка

Код AS3:

function URLRequestMethodExample() {
        var loader:URLLoader = new URLLoader();
        configureListeners(loader);
 
        var request:URLRequest = new URLRequest("test.php");
        request.data = "info=yes";
        request.method = URLRequestMethod.POST;
        loader.load(request);
}
 
function configureListeners(dispatcher:IEventDispatcher):void {
        dispatcher.addEventListener(Event.COMPLETE, completeHandler);
        dispatcher.addEventListener(Event.OPEN, openHandler);
        dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
        dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
        dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
        dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
}
 
function completeHandler(event:Event):void {
        var loader:URLLoader = URLLoader(event.target);
        //trace("completeHandler: " + loader.data);
        inf.text = loader.data;
}
 
function openHandler(event:Event):void {
        trace("openHandler: " + event);
}
 
function progressHandler(event:ProgressEvent):void {
        trace("progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal);
}
 
function securityErrorHandler(event:SecurityErrorEvent):void {
        trace("securityErrorHandler: " + event);
}
 
function httpStatusHandler(event:HTTPStatusEvent):void {
        trace("httpStatusHandler: " + event);
}
 
function ioErrorHandler(event:IOErrorEvent):void {
        trace("ioErrorHandler: " + event);
}
URLRequestMethodExample();

а вот файл test.php

PHP код:


<?php 
if (isset($_POST['info'])){
    echo 
"zapros s POST";
}else{
    echo 
"oblom";
};
?>

т.е., все просто. Флешка посылает запрос на этот файл, через POST, и получает ответ.

Но если просто открыть файл это http://lebedenko.ru/2/test.php то он выдает облом.

Мало того, если вы попробуете сделать запрос с другой страница с POST, или просто даже откроете этот файл с другой страницы, то он сделаем вам редирект на http://lebedenko.ru

Я сделал защиту от прямых ссылок:

.htaccess файл блокирует доступ к файлам из вне.
PHP код:


RewriteEngine on
RewriteCond 
%{HTTP_REFERER} !^http://lebedenko.ru/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^http://lebedenko.ru$      [NC]
RewriteRule .*\.(jpg|jpeg|gif|png|bmp|php)$ http://lebedenko.ru/ [R,NC] 

Добавлено через 5 часов 21 минуту
разве это не защита? это вроде еще какая защита.

etc 27.06.2009 11:51

http://etcs.ru/get_data.php

Barzometr 27.06.2009 15:58

а код можно? :)

etc 27.06.2009 16:05

Неа, нельзя :)

Barzometr 27.06.2009 16:06

Цитата:

Сообщение от __etc (Сообщение 831296)
Неа, нельзя :)

так не честно :).

ладно, попробую вслепую пошаманить

Mur4ik 27.06.2009 19:22

Вот еще варинатик :)
http://funstuff.net.ua/get_data.php

Попробуйте вместо проверки на referer проверять IP-адрес

etc 27.06.2009 19:49

Mur4ik, ip-адрес чего?

Mur4ik 27.06.2009 20:17

С которого идет запрос

etc 27.06.2009 20:23

И всех «неверных» будем банить? Каким образом будем определять, кто именно запрашивает файло?

Mur4ik 27.06.2009 20:57

Возможно это нужно сделать через некий промежуточный скрипт, который будет лежать на домене автора и уже через него дергать нужные данные.

На ВКонтакте, вроде, похожая система, те данные, что могут получать флешки залитые на их сервера, по другому из вне не получить (простым способом по крайней мере), такой "защиты от дурака" вполне может быть достаточно.

etc 27.06.2009 21:05

Да что вы, снифферы никто не отменял же. Взять тот же Wireshark.

Mur4ik 27.06.2009 21:20

Сниффер то тут причем?

Тем более большинство рядовых юзеров и слова такого могут не знать (сниффер, Wireshark) :)

etc 27.06.2009 21:25

Как причем? Флешку просмотрели, контент перехватили. Всё, делов-то.

Да, не знают юзеры. Зато они знают то, что есть те, кто знает.

Barzometr 27.06.2009 21:29

а вот если так поставить

<Files test.php>
order allow,deny
deny from all
allow from 217.174.103.230
</Files>

этот ip принадлежит серверу.

Флеш ведь можно использовать как серверное приложение? т.е. если через сокет из флеша будем подключаться - какой ip у него будет? сервера или пользовательский?

Mur4ik 27.06.2009 21:32

Это целое дело выдирать инфу просматривая флешку, а если мне эти данные динамически нужны и не только те что флешка дергает.

Я не отрицаю что серьезную защиту тут выстроить достаточно сложно и это может просто не окупиться, но простую, так чтоб голову поломать желающим данные получать - это можно. Или ограничить от того чтоб за этой инфой постоянно левые скрипты лезли.

Barzometr 27.06.2009 21:39

у меня два домена. Висят на одном IP.

этот файл http://lebedenko.ru/2/test.php закрыл
<Files test.php>
order allow,deny
deny from all
allow from 217.174.103.230
</Files>

разрешил только ip сервера.

на втором домене http://onlinevdonsk.ru/1/test2.php (у него получается именно разрешенный IP), подгружаю этот заблоченный файл.

Почему-то не открывает все равно. Но ведь его подгружает не пользователь, а скрипт на сервере
PHP код:


<?php
$b 
file("http://lebedenko.ru/2/test.php");
for (
$i=0$i<count($b); $i++){
echo 
$b[$i];
}
?>

почему блочит все равно?

etc 27.06.2009 21:46

Значит ошибка в директиве. Флеш — клиентский до мозга костей, поэтому и ip вы получите клиентский. Более того, запросы отправляет не флеш, а браузер. Поэтому если вы закрываете доступ по ip, то никто, кроме как с этого ip, получить данные не сможет.

MaskiShow 07.11.2009 12:40

А почему следует ограничивать доступ к файлам с других доменов, если я могу декомпилировать флешку и запустить ее локально, поправив во флешке пути URL с относительных на абсолютные. В итоге получить после запроса к php-скрипту ответ с требуемым параметром, прочитать его во флешке, и определить путь к файлу данных? :)

Это только помогает от просмотра любопытными кода флешки, чтобы не увидеть записанный в ней путь к файлам данных. Но если флешку будут декомпилить и править, это не спасет. И HTTP_REFERER тут не нужен... Разве я не прав?


Часовой пояс GMT +4, время: 07:31.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.