Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как скрыть параметры в адресной строке?
 
 автор: aalexx   (05.01.2006 в 11:18)   письмо автору
 
 

Доброго времени суток.
Хороший форум, приятно когда люди отвечают даже на самые глупые (элементарные :) ) вопросы. Иногда создается впечатление что на многих форумах прописан маленький скриптик который первым ответом на вопрос прописывает "Смотри FAQ!!!" или "Ищи в Google!!!" :). В принципе это правильно, но ведь зачастую у человека (назовем его начинающим программистом) настолько низкая подготовка, что он даже вопрос толком не может сформулировать а уж искать что-либо в поисковиках вовсе не представляется возможным, а проблему нужно решить бысро и без глубокого изучения например того же РНР. Так что, уважаемые организаторы и активные пользователи - Спасибо Вам от всех начинающих программистов за Ваше терпение и понимание!!!

Ну это лирика, а вопрос собственно вот в чем. Можно ли как то скрыть параметры в адресной строке? напрмер чтоб было вот так: "http://softtime.nodex.ru/forum/addthemeform.php" или вообще вот так: "http://softtime.nodex.ru/forum/". Вы спросите зачем. Ну хотябы в качестве дополнительной защиты от хацкеров, ведь если они не видят структуру сайта, то и разобраться им сложнее.
Извиняйте если говорю глупости... :)

   
 
 автор: Киналь   (05.01.2006 в 12:02)   письмо автору
 
   для: aalexx   (05.01.2006 в 11:18)
 

Самое простое - передавать требуемые параметры не GET'ом (через строку адреса), а POST'ом, используя скрытые (hidden) поля. Но при этом достаточно будет посмотреть HTML-код страницы, чтобы все узнать; скрытие же HTML-кода - задача трудоемкая, хотя и решаемая.

   
 
 автор: aalexx   (05.01.2006 в 12:17)   письмо автору
 
   для: Киналь   (05.01.2006 в 12:02)
 

Если можно пример со скрытыми полями

   
 
 автор: Duran   (05.01.2006 в 13:25)   письмо автору
 
   для: aalexx   (05.01.2006 в 12:17)
 

<form method='post' action='index.php'>
<input type=text name='name' >
<input type=hidden name='name2' value='значение для скрытого поля'>
<input class=ser type=submit value='ОТПРАВИТЬ'>
</form>

В этом примере поле и именем name2 скрыто (имеет атрибут hidden), при отправке, значение этого поля (значение value этого поля) будет отправлено скрипту.

   
 
 автор: cheops   (05.01.2006 в 13:53)   письмо автору
 
   для: Киналь   (05.01.2006 в 12:02)
 

Можно также через сессии передавать...

PS Только отсутствие параметров приведёт к тому, что попасть на страницу можно будет только следуя ссылкам и нельзя будет попасть на страницу напрямую минуя лабиринт ссылок. Помимо того, что не будут срабатывать ссылки с других сайтов, к вам не смогут попасть роботы поисковых систем, а это может сказаться на раскрутке вашего сайта.

   
 
 автор: aalexx   (05.01.2006 в 14:18)   письмо автору
 
   для: cheops   (05.01.2006 в 13:53)
 

Самое главное я хотел узнать Ваше мнение по поводу того стоит ли вообще скрывать параметры в адресной строке. Могу я попросить высказаться по этому поводу всех участников?

   
 
 автор: cheops   (05.01.2006 в 18:18)   письмо автору
 
   для: aalexx   (05.01.2006 в 14:18)
 

Считаю, что нет, серьёзной защиты это не даст, и будет соблазн пренебречь ей в коде...

   
 
 автор: Artem S.   (05.01.2006 в 12:38)   письмо автору
 
   для: aalexx   (05.01.2006 в 11:18)
 

modrewrite ЧБН РПНПЦЕФ

   
 
 автор: aalexx   (05.01.2006 в 13:03)   письмо автору
 
   для: Artem S.   (05.01.2006 в 12:38)
 

>modrewrite ЧБН РПНПЦЕФ
не понял :)

   
 
 автор: hatsker   (05.01.2006 в 13:21)   письмо автору
 
   для: aalexx   (05.01.2006 в 13:03)
 


forma_post.htm (сохраните этот кода как файл forma_post.htm)


<form action="script_post.php" method="post">
<input type="text" name="field_name">
<input type="hidden" value='"Привет"' name='about_me'>
<input type="submit" name='button'>
</form>



forma_get.htm (сохраните этот кода как файл forma_get.htm)

<form action="script_get.php" method="get">
<input type="text" name="field_name">
<input type="hidden" value='"Привет"' name='about_me'> // скрытое поле. нельзя увидеть в HTML.
<input type="submit" name='button'>
</form>


Далее сохраните это как script_post.php

<?php
 
echo $_POST['field_name'].'<br>';
 echo 
$_POST['about_me'].'<br>';
?>


Далее сохраните это как script_get.php

<?php
 
echo $_GET['field_name'].'<br>';
 echo 
$_GET['about_me'].'<br>';
?>



И посмотрите на address bar. (на адресную строку). Сами увидите разницу.

   
 
 автор: aalexx   (05.01.2006 в 14:24)   письмо автору
 
   для: hatsker   (05.01.2006 в 13:21)
 

С формами в общем то все понятно, а вот если параметры передаються станице через гиперссылку например

echo "<a href=\"".$PHP_SELF."?id=2&lang=ru\">нажми</a>";

   
 
 автор: cheops   (05.01.2006 в 13:55)   письмо автору
 
   для: aalexx   (05.01.2006 в 13:03)
 

Здесь имеется ввиду модуль ReWrite, который позволяет посредством конфигурационного файла .htaccess изменить URL до неузнаваемости, этому посвящена каждая вторая тема форума Apache.

   
 
 автор: PantiL   (05.01.2006 в 14:03)   письмо автору
 
   для: aalexx   (05.01.2006 в 11:18)
 

С помощью файла .htaccess все запросы в которых нет точки отдавать на обработку одному и тому же файлу , например index.php. Тогда все запросы вида site.com/news, site.com/articles и тд и тп будут обрабатываться файлом index.php, который лежит в корне. В этом файле парсим строку $HTTP_SERVER_VARS['REQUEST_URI'] (строка запроса). Например разобъем(explode) ее разделителем "/" слэшем, получим при вот таком запросе site.com/news/2005_12_3/123 массив
$arr[0] = news
$arr[1] = 2005_12_3
$arr[2] = 123
Это все к примеру, у Вас список этих параметром может быть любым, и уже в зависимости от этих параметров файл index.php (который обрабатывает запрос) подключит соответсвующие файлы (в данном случае подключит модуль news а тот в свою очередь найдет новости на 3 декабря 2005 года и из новостей выберет ту которая под номером 123)

   
 
 автор: XPraptor   (05.01.2006 в 14:29)   письмо автору
 
   для: PantiL   (05.01.2006 в 14:03)
 

Хацкерам всеравно, видят они твои переменные, или нет. Есть стандартный набор процедур для проверки страницы на уязвимость xss скриптам и уже по его результатам происходит дальнейшая атака. Никакие хиден поля ничего для хацкера не меняют, они все видны в его инструментарии, как и обычные параметры GET строки.
Поэтому спастись от атак можно только грамотным кодом с полной проверкой и обработкой GET и POST данных.

   
 
 автор: aalexx   (05.01.2006 в 14:35)   письмо автору
 
   для: XPraptor   (05.01.2006 в 14:29)
 

Воооот это уже интереснее. Что за xss скрипты, где достать? Интересно самому проверять на "дырявость" свои скрипты :).

   
 
 автор: XPraptor   (05.01.2006 в 14:43)   письмо автору
 
   для: aalexx   (05.01.2006 в 14:35)
 

У хостера можешь попросить своего, или поискать по поиску инструменты для атак. Мой хостер сам периодически проверяет все сайты, безбашенно атакуя их xss скриптами, а потом присылает отчет об уязвимостях и рекомендации к устранению. Правда они за 5 дней предупреждают, что будет атака и если ты против можешь отказаться. Я не отказываюсь :)) пусть бомбят себе в удовольствие, правда формы обратной связи столько мессаг присылают на мыло после таких развлечений хостера :))))

   
 
 автор: cheops   (05.01.2006 в 18:20)   письмо автору
 
   для: aalexx   (05.01.2006 в 14:35)
 

Возможно вам будет интересна статья по ссылке http://www.softtime.ru/info/articlephp.php?id_article=35

   
 
 автор: PantiL   (05.01.2006 в 14:48)   письмо автору
 
   для: XPraptor   (05.01.2006 в 14:29)
 

На счет грамотного кода, Вы правы, но дело еще и в другом. УРЛ вида site.com/news/bla_bla намного красивее выглядит и лучше запоминается. А так как каталог news не существует, то это может значительно запутать хацкера. Зтрока запроса только показывает что хочет увидеть юзер, а откуда это скрипт вытащит и покажет уже никому не известно!!!

   
 
 автор: XPraptor   (05.01.2006 в 14:54)   письмо автору
 
   для: PantiL   (05.01.2006 в 14:48)
 

Почему это не известно? Сервер вернет 301-303 редирект, инструмент хацкера отменит переход по редиректу и вернет адрес со всей строкой запроса к исполняемому скрипту. Я же говорю, хацкеру всеравно используется modrewrite post данные или get всеравно его инструментарий все видит в плоть до декодированных кукисов.
Поэтому красивая строка, она только действительно для наглядного представления в адресной строке обозревателя. А на счет запомнить - тоже сомнительно. Запомнят сайт, но никак не адрес конкретной страницы с четырьмя слэшами.

   
 
 автор: PantiL   (05.01.2006 в 19:06)   письмо автору
 
   для: XPraptor   (05.01.2006 в 14:54)
 

Ну если определите на моем сайте путь к исполняемому файлу я соглашусь с Вами. (потом расскажите как сделали)
http://chertkovo.info

   
 
 автор: aalexx   (06.01.2006 в 08:57)   письмо автору
 
   для: PantiL   (05.01.2006 в 19:06)
 

>Ну если определите на моем сайте путь к исполняемому файлу я
>соглашусь с Вами. (потом расскажите как сделали)
>http://chertkovo.info
В принципе именно про такой вид адресной строки я и спрашивал. Как этого добиться и будет ли это влиять на раскрутку сайта, с хацкерами более-менее понятно. Ваши коментарии...

   
 
 автор: PantiL   (06.01.2006 в 09:05)   письмо автору
 
   для: aalexx   (06.01.2006 в 08:57)
 

У меня реализовано так как я писал выше. Этот метод называется - виртуальные каталоги. Все эти каталоги запрашиваемые юзером news, articles, ... не существуют!!!

   
 
 автор: aalexx   (06.01.2006 в 09:10)   письмо автору
 
   для: PantiL   (06.01.2006 в 09:05)
 

Где про это прочитать в более развернутом виде (опыта не хватает разобраться в Вашем примере плз. :)) Звиняйте за деревянность.
З.Ы. Я имею ввиду то что касается .htaccess

   
 
 автор: PantiL   (06.01.2006 в 10:55)   письмо автору
 
   для: aalexx   (06.01.2006 в 09:10)
 

http://softtime.ru/info/articlephp.php

   
 
 автор: aalexx   (06.01.2006 в 12:11)   письмо автору
 
   для: PantiL   (06.01.2006 в 10:55)
 

Спасибо всем большое...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования