X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Можно ли сделать такую защиту?
GC_
GC_
Topic Starter сообщение 1.3.2010, 12:15; Ответить: GC_
Сообщение #1


Завсегдатай
*****

Группа: Active User
Сообщений: 902
Регистрация: 14.1.2008
Из: Red-Ярск
Поблагодарили: 364 раза
Репутация:   78  


Можно ли сделать какую-либо защиту на страничку (ява скриптом, например), чтобы ее можно было открывать во фрейме на родном сайте, а при открытии ее во фрейме на чужом сайте - чтобы перекидывало на основной?

С меня +


--------------------
В чем сила, Брат?
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
On1x
On1x
сообщение 1.3.2010, 12:53; Ответить: On1x
Сообщение #2


Бывалый
****

Группа: User
Сообщений: 262
Регистрация: 24.1.2010
Из: Димитровград
Поблагодарили: 61 раз
Репутация:   20  


В теории возможно.
Следует делать в странице которая в фрейме проверку на
var url=parent.URL;
if(url != "http://ВАШ_URL_ГДЕ_СТОИТ_ФРЕЙМ"){
//тут уже решать, что делать. можно открыть в новом окне ваш сайт, или попробовать parent.location="http://ВАШ_САЙТ/"
}


--------------------


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
GC_
GC_
Topic Starter сообщение 1.3.2010, 20:14; Ответить: GC_
Сообщение #3


Завсегдатай
*****

Группа: Active User
Сообщений: 902
Регистрация: 14.1.2008
Из: Red-Ярск
Поблагодарили: 364 раза
Репутация:   78  


Попробовал всяко, не получается этот вариант...
Вот код, который делает содержимое фрейма основным (если страницу во фрейме открывают):

<script type="text/javascript">
window.die=function(){
(window.stop && window.stop())||
    (
    window.onload=function(){
        html=document.getElementsByTagName('HTML')[0];
        var children=html.childNodes;
        while(children.length)    html.removeChild(children[0]);}
    )
}
try
    {
    if(self.parent.frames.length!=0)
        {
        die();
        self.parent.location=document.location;
        }
    }
catch(e)
    {
    if((window.parent)!=window)
        {
        die();
        self.parent.location=document.location;
        }
    }
</script>


Может можно его как-то дописать, чтобы работал только если parent url != "mysite.ru"?


--------------------
В чем сила, Брат?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
isleman
isleman
сообщение 2.3.2010, 1:50; Ответить: isleman
Сообщение #4


Бывалый
****

Группа: User
Сообщений: 408
Регистрация: 16.10.2009
Из: НН
Поблагодарили: 83 раза
Репутация:   16  


GC_, ИМХО лучше сделать такую защиту на стороне сервера, она сложнее обходиться, и жизнь злоумышленникам можно усложнить сильно, а защита на JavaScript обходиться легко.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
GC_
GC_
Topic Starter сообщение 2.3.2010, 10:48; Ответить: GC_
Сообщение #5


Завсегдатай
*****

Группа: Active User
Сообщений: 902
Регистрация: 14.1.2008
Из: Red-Ярск
Поблагодарили: 364 раза
Репутация:   78  


(isleman @ 2.3.2010, 4:50) *
GC_, ИМХО лучше сделать такую защиту на стороне сервера, она сложнее обходиться, и жизнь злоумышленникам можно усложнить сильно, а защита на JavaScript обходиться легко.

Тогда как сделать на стороне сервера? smile.gif


--------------------
В чем сила, Брат?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Zellegius
Zellegius
сообщение 2.3.2010, 12:02; Ответить: Zellegius
Сообщение #6


Старожил
******

Группа: Active User
Сообщений: 1096
Регистрация: 8.3.2009
Из: Санкт-Петербург
Поблагодарили: 216 раз
Репутация:   24  


(GC_ @ 1.3.2010, 19:14) *
Попробовал всяко, не получается этот вариант...
Вот код, который делает содержимое фрейма основным (если страницу во фрейме открывают):

<script type="text/javascript">
window.die=function(){
(window.stop && window.stop())||
    (
    window.onload=function(){
        html=document.getElementsByTagName('HTML')[0];
        var children=html.childNodes;
        while(children.length)    html.removeChild(children[0]);}
    )
}
try
    {
    if(self.parent.frames.length!=0)
        {
        die();
        self.parent.location=document.location;
        }
    }
catch(e)
    {
    if((window.parent)!=window)
        {
        die();
        self.parent.location=document.location;
        }
    }
</script>


Может можно его как-то дописать, чтобы работал только если parent url != "mysite.ru"?


Чет у меня такое ощущение что вы код не правильно поняли. Он призван ломать фрейм, а не делать его основным. Вы не на том базироваться решили в своих изысканиях.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
blackpc
blackpc
сообщение 2.3.2010, 12:08; Ответить: blackpc
Сообщение #7


Частый гость
**

Группа: User
Сообщений: 54
Регистрация: 8.5.2009
Поблагодарили: 25 раз
Репутация:   6  


Если домен iframe'а и домен основного сайта различаются то браузеры не дадут изменить основной сайт, выкинут ошибку "Access Denied" - потому что это уже считается почти взломом можно сказать

Сообщение отредактировал blackpc - 2.3.2010, 12:09
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
isleman
isleman
сообщение 2.3.2010, 12:33; Ответить: isleman
Сообщение #8


Бывалый
****

Группа: User
Сообщений: 408
Регистрация: 16.10.2009
Из: НН
Поблагодарили: 83 раза
Репутация:   16  


(GC_ @ 2.3.2010, 10:48) *
Тогда как сделать на стороне сервера?

самый простой вариант это настроить .htaccess
RewriteEngine On  
RewriteCond %{HTTP_REFERER} !^http://(. \.)?mysite\.com/ [NC]  
RewriteCond %{HTTP_REFERER} !^$  
RewriteRule frame\.php$ not-frame.php [L]

если же делать подобную проверку в самом скрипте, то можно бороться и с подменой переменной REFERER


--------------------


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
GC_
GC_
Topic Starter сообщение 11.3.2010, 19:31; Ответить: GC_
Сообщение #9


Завсегдатай
*****

Группа: Active User
Сообщений: 902
Регистрация: 14.1.2008
Из: Red-Ярск
Поблагодарили: 364 раза
Репутация:   78  


Спасибо, но данный вариант реализовать не смог. Заплачу 5$ тому, кто настроит работу данной защиты на своем сайте и даст мне готовую версию smile.gif


--------------------
В чем сила, Брат?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
isleman
isleman
сообщение 13.3.2010, 0:05; Ответить: isleman
Сообщение #10


Бывалый
****

Группа: User
Сообщений: 408
Регистрация: 16.10.2009
Из: НН
Поблагодарили: 83 раза
Репутация:   16  


(GC_ @ 11.3.2010, 18:31) *
Заплачу 5$ тому, кто настроит работу данной защиты на своем сайте и даст мне готовую версию

актуально?


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Сколько можно просить за такой аккаунт ВК?
28 qazex 5873 Вчера, 9:44
автор: Mikki
Открытая тема (нет новых ответов) Как правильно сделать категории на сайте?
Хелппп!!!
5 norino 637 11.12.2017, 16:28
автор: One_on_One
Открытая тема (нет новых ответов) Новые аккаунты Директ без НДС, которые можно пополнять картами РФ.
Можно вновь пополнять аккаунты Яндекс Директ без НДС из России.
5 DerianFox 1312 8.12.2017, 6:36
автор: DerianFox
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыПродажа кофе, можно оценить сайт
17 Doc10 1353 4.12.2017, 0:13
автор: alexandrrr
Открытая тема (нет новых ответов) В Instagram теперь можно проводить опросы
Вы ведь ждали эту новость?)
13 jack 2335 3.12.2017, 13:05
автор: david_st


 



RSS Текстовая версия Сейчас: 13.12.2017, 4:12
Дизайн