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


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Где можно найти хорошего копирайтера?
7 megi 688 Вчера, 22:58
автор: rty9000
Открытая тема (нет новых ответов) Где можно узнать, прочитать правила "Веб-дизайна"
4 unbur 1292 18.5.2018, 19:21
автор: megi
Открытая тема (нет новых ответов) SESS обязательно, или можно обойтись?
3 Telnor 416 18.5.2018, 1:09
автор: bum
Открытая тема (нет новых ответов) На чём сделать интернет-магазин услуг
11 Зотов 1548 17.5.2018, 16:26
автор: Chezarius
Открытая тема (нет новых ответов) Продвигаю страницу по запросу "Как сделать игру". Помогите советом, пожалуйста
Я секу в теме! Но подать статью угодным поисковикам образом не смо
22 coremission 2145 8.5.2018, 12:33
автор: coremission


 



RSS Текстовая версия Сейчас: 21.5.2018, 5:59
Дизайн