|
|
|
| Привет!
Появилась такая проблемка.
имеется 2 файла : index.php и frame.php
лежат эти файлы так :
http://site/dat/index.php
и
http://site/fram/frame.php
----
Нужно сделать так чтобы при переходе на http://site/fram/frame.php содержимое данной страницы не отображалось а выдавалась например ошибка или еще что.
а если вписать в http://site/dat/index.php :
<iframe src=/fram/frame.php width=500 height= 300>
То содержимое http://site/fram/frame.php отобрадалось.
????? | |
|
|
|
|
|
|
|
для: ZooM (ССС)
(11.07.2006 в 10:24)
| | Отображение изменить можно, если привлечь JS. Т.е. поместив внутрь frame.php что-то вроде
<script> document.writeln(top != window
? "In frame structure"
: "Without frame structure"
); </script>
|
А сам код фрейма - в одну из строк.
А запретить обращение совсем не удастся. | |
|
|
|
|
|
|
|
для: Trianon
(11.07.2006 в 10:41)
| | а еще варианты есть ??? | |
|
|
|
|
|
|
|
для: ZooM (ССС)
(11.07.2006 в 11:08)
| | Без привлечения JS? Сомневаюсь.
Насколько я понимаю, других вариантов выяснить где выполняется код, просто нет. | |
|
|
|
|
|
|
|
для: Trianon
(11.07.2006 в 11:17)
| | А чем сессии не нравятся.
Удалять из в конце выполнения скрипта и всё. | |
|
|
|
|
|
|
|
для: valenok
(11.07.2006 в 12:42)
| | а как отличить, откуда произошел вызов? Может пользователь Ctrl-N нажал, и адрес фрейма руками вбил? | |
|
|
|
|
|
|
|
для: Trianon
(11.07.2006 в 13:03)
| | Поэтому в конце выполнения удаляем сессию.. | |
|
|
|
|
|
|
|
для: Trianon
(11.07.2006 в 13:03)
| | Прав. Чёт я забыл что второй скрипт исполняется когда первый уже заканчивается.. | |
|
|
|
|
|
|
|
для: Trianon
(11.07.2006 в 11:17)
| | Хотя это не имеет никакого отношения к определению места исполнения скрипта.
Только порблема в том что если привлечь javascript это значит что пользователь уже получил страницу. | |
|
|
|
|
|
|
|
для: valenok
(11.07.2006 в 12:43)
| | по крайней мере чувак предложил реальный пример ежели ты валенок.
задача заключалась в том что надо было просто хоть как то защитить страницу от прямого вызова.
Trianon - спасибо! | |
|
|
|
|
|
|
|
для: ZooM (ССС)
(11.07.2006 в 13:46)
| | Извини уважаемый ZooM, но если хочешь сделать хороший сайт с хорошей защитой, то сразу забудь про js
Во-первых, код открытый, зашифровать не удастся, так как дешифровщик придется в него же пихать.
во-вторых, алгоритмы получения ссылок доступны невооружонным взглядом.
в-третьих, весь доступ надо обрабатывать через скрипт системы безопасности.
К примеру, концепция такой системы:
1. База данных со списком всех файлов в каталогах сайта
2. Скрипт который проверяет наличие файла в этом списке и права на прямое использование ФАЙЛА.
Если этот скрипт находит файл в базе и к нему разрешен доступ, то он берет и подклюбчает его через абсолютный include, иначе либо вывод сообщения об ошибке и высвечивание главной или предыдущей страницы, откуда пользователь пришел.
3. С mod_rewrite делается полный редирект на скрипт проверки. Хоть и получится поголовная цикличность, но зато надежнее. | |
|
|
|
|
|
|
|
для: ZooM (ССС)
(11.07.2006 в 13:46)
| | Помогло вот это: echo $_SERVER['HTTP_REFERER'];
По нему и проверяйте.. | |
|
|
|
|
|
|
|
для: valenok
(11.07.2006 в 15:07)
| | это конает если пользователь пришел с какой нить страницы, а если он пошел на фреймовую страницу прямо с index.php
то тогда отобразиться.
---
на счет защиты. это мне просто так было интересно на своем сайте я фреймы внедрять не собираюсь. | |
|
|
|
|
|
|
|
для: ZooM (ССС)
(11.07.2006 в 17:43)
| | У меня по фреймам http_referer отработал по нормальному. | |
|
|
|
|
|
|
|
для: valenok
(11.07.2006 в 17:49)
| | приведи сожержимое обоих страниц. может у тебя там как то вымужрено сделано. | |
|
|
|
|
|
|
|
для: ZooM (ССС)
(12.07.2006 в 10:51)
| | А.пхп
--
<FRAMESET >
<frame src='b.php'>
</frameset>
б.пхп
--
<? echo $_SERVER['HTTP_REFERER']; // Выдал: http://tmp/a.php | |
|
|
|
|
|
|
|
для: valenok
(12.07.2006 в 12:37)
| | Это можно сделать так. Надо фрейм как-то назвать, например
А потом в него вставить скрипт:
<Script>
if (window.name != 'demo') {
window.close();
}
</Script>
|
Скрипт желательно вывести в отдельный файл.
Т.о. любые попытки открыть страницу в любом другом окне , приводят к закрытию этих окон. Или можно перенаправлять на другие страницы. | |
|
|
|
|
|
|
|
для: Владимир22
(12.07.2006 в 13:57)
| | Пользователь уже получил страницу..
[поправлено модератором] | |
|
|
|