Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: защита от просмотра php в iFrame

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
nilbug
Отправлено: 31 Мая, 2009 - 14:26:26
Post Id


Гость


Покинул форум
Сообщений всего: 114
Дата рег-ции: Янв. 2009  
Откуда: kazan


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2. <FIELDSET>
  3.  <iFrame src="1.php" scrolling="auto"></iFrame>
  4. </FIELDSET>
  5.  


имеется некий фрейм расположенный сайт.ру/index.php. содержимое фрейма обрабатывается в 1.php и выводится в сам фрейм. как можно защитить файл 1.php от прямого просмотра? чтобы пользователь не мог введя в адресной строке сайт.ру/1.php видеть то что по идее должно выводиться в фрейме сайт.ру/index.php
 
 Top
NebsteR
Отправлено: 31 Мая, 2009 - 15:08:33
Post Id


Гость


Покинул форум
Сообщений всего: 75
Дата рег-ции: Янв. 2009  


Помог: 0 раз(а)




хз будет-ли это работать во фрейме, но все-таки:
в начале index.php:
, и в начале 1.php:
PHP:
скопировать код в буфер обмена
  1. <?PHP if (!defined('TEST')) die("Hacking attempt!"); ?>


с инклудами работает отлично, насчет фреймов хз, не пробовал...

(Отредактировано автором: 31 Мая, 2009 - 15:10:06)

 
 Top
vitaliy_mad
Отправлено: 31 Мая, 2009 - 15:23:49
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


Помог: 0 раз(а)




NebsteR пишет:
с инклудами работает отлично, насчет фреймов хз, не пробовал...

не должно работать... define работает только внутри скрипта... а include включает другой скрипт с текущий... здесь только сессии могут помочь...
 
 Top
nilbug
Отправлено: 31 Мая, 2009 - 16:07:11
Post Id


Гость


Покинул форум
Сообщений всего: 114
Дата рег-ции: Янв. 2009  
Откуда: kazan


Помог: 0 раз(а)




согласен с vitaliy_mad. NebsteR, Ваш пример не работает.
 
 Top
Гость
Отправлено: 31 Мая, 2009 - 16:53:09
Post Id


УДАЛЁН










nilbug На самом деле никак - особенно со стороны клиента ведь можно легко взломать
Максимум что можно созавать сессию в index.php и внутри 1.php проверять если ли сессия и иначе не выдавать соджержимое
 
 Top
WNeZRoS
Отправлено: 31 Мая, 2009 - 17:11:06
Post Id



Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Май 2009  


Помог: 0 раз(а)




проверять $_SERVER['HTTP_REFERER']
 
 Top
IOpeH
Отправлено: 31 Мая, 2009 - 17:52:51
Post Id



Частый гость


Покинул форум
Сообщений всего: 175
Дата рег-ции: Нояб. 2007  


Помог: 0 раз(а)




от нубов еще сгодится вариант
CODE (text):
скопировать код в буфер обмена
  1. <style type="text/css">BODY{display:none;}</style>

, но разумеется исходный код фрейма будет доступен
 
 Top
vitaliy_mad
Отправлено: 31 Мая, 2009 - 18:00:27
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


Помог: 0 раз(а)




IOpeH пишет:
<style type="text/css">BODY{display:none;}</style>

внутри фрейма его тоже не будет видно...
 
 Top
nilbug
Отправлено: 31 Мая, 2009 - 21:12:23
Post Id


Гость


Покинул форум
Сообщений всего: 114
Дата рег-ции: Янв. 2009  
Откуда: kazan


Помог: 0 раз(а)




WNeZRoS пишет:
проверять $_SERVER['HTTP_REFERER']

угу. спасибо, ты прав. сделал пока проверку в 1.php

PHP:
скопировать код в буфер обмена
  1.  
  2. if ($_SERVER['HTTP_REFERER']=="")
  3.  {
  4. header("location: http://мой_сайт.ru/error/index.php?404");
  5.  }
  6.  


если пользователь тупо вставляет url в адресную строку, то обламывается. осталось дополнить скрипт, если чел попробует написать свою html страницку с ссылкой на 1.php, чтобы не получалось что типа $_SERVER['HTTP_REFERER'] будет равняться его сайту.
 
 Top
WNeZRoS
Отправлено: 31 Мая, 2009 - 21:18:55
Post Id



Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Май 2009  


Помог: 0 раз(а)




проверяй домен реферера на совпадение со своим.
PHP:
скопировать код в буфер обмена
  1. if (!isset($_SERVER['HTTP_REFERER'])) // усовершенствованный твой код
  2. {
  3. header("location: http://мой_сайт.ru/error/index.php?404");
  4. }
  5. else
  6. {
  7. if(strpos($_SERVER['HTTP_REFERER'], 'http://site_url.ru/')===false) // проверка домена
  8. header("location: http://мой_сайт.ru/error/index.php?404");
  9. }
 
 Top
dsb80
Отправлено: 01 Июня, 2009 - 00:40:01
Post Id



Гость


Покинул форум
Сообщений всего: 71
Дата рег-ции: Янв. 2009  
Откуда: СПб


Помог: 0 раз(а)




Цитата:

не должно работать... define работает только внутри скрипта... а include включает другой скрипт с текущий... здесь только сессии могут помочь...

ниправда... я спомощю define организовал языковые константы (находящиеся в другом скрипте)....

и еще, кстать, $_SERVER['PHP_SELF'] никно не отменял!

например так
CODE (text):
скопировать код в буфер обмена
  1. if (eregi("right_blok.php",$_SERVER['PHP_SELF'])) {
  2.                                                 Header("Location: err404.php");
  3.                                                 die();
  4.                                               }

(Отредактировано автором: 01 Июня, 2009 - 00:42:38)



-----
Не слушайте... После 19.00 вместо меня пишет ПЫВО
 
 Top
vitaliy_mad
Отправлено: 01 Июня, 2009 - 01:00:32
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


Помог: 0 раз(а)




dsb80 пишет:
я спомощю define организовал языковые константы (находящиеся в другом скрипте)

приведи пример. интересно...
 
 Top
dsb80
Отправлено: 01 Июня, 2009 - 01:20:00
Post Id



Гость


Покинул форум
Сообщений всего: 71
Дата рег-ции: Янв. 2009  
Откуда: СПб


Помог: 0 раз(а)




Ну вот...примерно так..
lang_rus.php
Цитата:

<?php
define("_GENERAL","главная");
define("_BLOGS","блоги");
?>


index.php
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. include_once 'lang_rus.php';
  4. echo constant("_GENERAL");
  5. ?>
  6.  


Ну да впринципе скрипт инклудить надо

(Отредактировано автором: 01 Июня, 2009 - 01:23:21)



-----
Не слушайте... После 19.00 вместо меня пишет ПЫВО
 
 Top
vitaliy_mad
Отправлено: 01 Июня, 2009 - 02:11:01
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


Помог: 0 раз(а)




dsb80 пишет:
Ну да впринципе скрипт инклудить надо
vitaliy_mad пишет:
define работает только внутри скрипта... а include включает другой скрипт с текущий
 
 Top
Гость
Отправлено: 01 Июня, 2009 - 11:35:01
Post Id


УДАЛЁН










Господа ну что вы правда - referer подделать это дело одной минуту это же несерьезно
Лучше бы почитали что я посоветовал использовать сессии - объясняю механизм
1 Сначала когда пользователь захоит на index.php то открывается сессия в которой кладется спецаильная секретная переменная
2 Когда пользователь открывает 1.php то проверяется сессия и еси она есть то текст выводится иначе выаодится ошибка Но в конце генерации 1.php сессия стирается дабы потом нельзя было опять просто там запусттиь 1.php
Хотя сессию впринципе моджно заменить на cookie (Хотя cookie можно будет подделать а вот номер сессия это вряд ли)
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB