Навигация
 
Главная
Для начинающих
Паскаль/Pascal
Bash

Визуальное программирование
• Visual Basic
• Delphi/Делфи
• C++/Си++/Си
• документация
• Компоненты

WEB программирование
• MySQL/мускул
• Web-дизайн
•• Шрифты
• PHP/Пхп
• Документация PHP
• JavaScript
•• библиотека jquery
•  Документация
Прочее

 
 
Поиск по сайту
 




 
 
О нас
  У нас Вы можете скачать исходники, скачать скрипты, найти исходники, исходники delphi, документация по JQeury, исходники си, учебник HTML  
 
Теги
  codeserfercom, Linux, nbspnbsp, Private, Visual, Возможность, Пример, Рассмотрим, Сегодня, Теперь, будет, данных, значение, который, может, можно, написать, например, очень, переменной, переменных, пользователя, помощью, программа, программирования, программы, просто, работы, разработки, решил, сделать, скрипт, строки, строку, также, только, функции, число, этого, языка

Показать все теги
 
 
Счетчики
 
 
 
Реклама
   
 
Лучшие коды
   
   
 
Защита от изменения формы
 Категория: Web-программирование » PHP | автор: Codeserfer | 21 июля 2009 | Просмотров: 5698  



 
У РНР есть одна интересная переменная окружения: $HTTP_REFERER. В ней должен находиться путь к файлу, из которого был запущен сценарий. Давайте создадим файл env.php со следующим содержимым:
<form action="env.php" method="get">
<В>Введите какой-нибудь текст</В>
<BR>Текст: <input name="server">
<BR><input type="submit" value="OK">
</form>
<?php
print($HTTP_REFERER);
?>

Здесь определены форма для ввода текста и передачи его сценарию и РНР-код, который выводит на Web-страницу содержимое переменной $HTTP_REFERER. Загрузите этот сценарий в браузер. В результате на экране помимо формы для ввода текста может быть выведен путь к файлу, откуда
был запущен сценарий, но при запуске он может быть и пустым. Теперь попробуйте ввести какой-нибудь текст в поле ввода и передать его серверу. Вот теперь переменная $HTTP_REFERER ТОЧНО должна отражать путь. В моем случае на Web-странице я увидел http://192.168.77.1/env.php, здесь 192.168.77.1 — это IP-адрес компьютера, где у меня установлен Linux с Web-сервером Apache+PHP.
Теперь попробуем сохранить файл на своем жестком диске и исправим путь в поле action формы так, чтобы данные формы передавались Web-серверу:
<form action="http://192.168.77.1/env.php" method="get">
<В>Введите какой-нибудь текст</В>
<BR>TeKcr: <input name="server">
<BR><input type="submit" value="OK">
</form>
<?php
print($HTTP_REFERER);
?>

Хакеры очень часто сохраняют Web-страницы на своем диске для изучения и корректировки параметров, например, параметров передаваемых методом POST. Загрузите этот файл со своего жесткого диска и попробуйте теперь передать параметр серверу. Так как в данном случае сценарий запускается не с сервера, то переменная HTTP_REFERER будет содержать что угодно, но только не адрес сервера 192.168.77.1. Таким образом, в сценарии можно сделать следующую защиту:
<?php
if (isset($server)) {
  if (!ereg("^192\.1б8.8\.88")) {
     die("He стоит так взламывать сайт");
   }
}
?>

Теперь сохранить страницу на локальном жестком диске будет сложнее.
 
 

Что-то не получается? Не понятна какая-то часть кода? Напишите комментарий об этом и мы обязательно Вам все объясним!
Обязательно напишите отзыв о программе / учебнике. Для выражения благодарностей есть кнопка:


Своё Спасибо, еще не выражали.
 
  Просьбы перезалить в комментариях принимаются
 
 (голосов: 3)
 
 
 
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
 
  Другие коды по теме:  
 
  • Уязвимость параметров при передаче данных методом POST
  • ping доменов и IP на PHP
  • Обработка данных формы
  • Показ и скрытие логин-панели
  • Обращение к WhoIs для IP на PHP
  •  
    Комментарии (0) Распечатать




    © 2008 - 2010. Копирование материалов запрещено!
    Мой аккаунт
     
    Логин
    Пароль
     
     
     
    Опрос
     
    Чего нам не хватает?

    Ничего, все прекрасно и так!
    Другого дизайна
    Больше кодов
    Больше комментариев
    Посещаемости
    Дополнительных сервисов для удобства пользователей
    Другое (напишите, пожалуйста, что)
     
     
    Друзья
     
    serial, crack, keygen
    cool-archive.ru
    ABC-IT.lv - истиному ИТишнику!
     
     
    Архив кодов
      Август 2011 (1)
    Июль 2011 (4)
    Июнь 2011 (3)
    Апрель 2011 (2)
    Февраль 2011 (5)
    Январь 2011 (3)
     
     
     
    Реклама