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

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

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

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




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

Показать все теги
 
 
Счетчики
 
 
 
Реклама
   
 
Лучшие коды
   
   
 
Уязвимость параметров при передаче данных методом POST
 Категория: Web-программирование » PHP » Литература | автор: Codeserfer | 20 июля 2009 | Просмотров: 3942  



 
При передаче данных методом POST, казалось бы, проблема безопасности решается - данные не поподают в адресную строку, их нельзя подделать. Но проблема не решается полностью..
Хотя параметры не видны в строке URL, проблема не решается полностью.
Допустим, что Вы разрешили использовать глобальные переменные и применяете их для доступа к параметрам:
<form action="postparam.php" method="post">
User Name: <input name="UserName">
<input type="hidden" name="Password" value="qwerty">
</form>
<?php
if ($UserName<>""){
   print("<Р>Ваше имя пользователя: " );
   print("$UserName");
   print("<Р>Пароль: $Password");
}
?>

В этом примере из формы передаются параметры методом POST. Несмотря
на это, мы можем выполнить запрос следующего вида:
index.php?UserName=Flenov&Password=qwerty
То есть мы передаем параметры, как в методе GET, И при этом сценарий отработает верно. Почему? Проблема кроется в глобальных переменных, которые не "знают", какой метод мы используем, и не зависят от него. В этом отношении использование массивов $HTTP_POST_VARS И $HTTP_GET_VARS более безопасно, потому что они привязаны к методу. Если бы мы обрабатывали параметры с помощью массива $HTTP_POST_VARS, то попытка передать параметры методом GET завершилась бы неудачей, потому что такие параметры попадают в другой массив $HTTP_GET_VARS.
Вот, как можно получить доступ к параметрам через массивы, а также запретить передачу параметров через строку URL, т. е. методом GET. Если массив $HTTP_GET_VARS не пустой, то выполнение цикла прерывается с сообщением о неверном параметре:
<form action="arrayparam.php" method="post">
User Name: <input name="UserName">
<input type="hidden" name="Password" value="qwerty">
</form>
<?php
if (count($HTTP_GET_VARS)>0) {
   die("Неверный параметр");
}
if ($HTTP_POST_VARS["UserName"]<>""){
   print("<Р>Ваше имя пользователя: " );
   print($HTTP_POST_VARS["UserName"]);
   print("<Р>Ваш пароль: " );
   print($HTTP_POST_VARS["Password"]);
}
?>
 
 

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


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




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

    WinRAR
    WinZip
    7-zip
    CabTools
    Сижу на linux, все в .rpm .deb
    Другой
     
     
    Друзья
     
    serial, crack, keygen
    cool-archive.ru
    ABC-IT.lv - истиному ИТишнику!
     
     
    Архив кодов
      Август 2011 (1)
    Июль 2011 (4)
    Июнь 2011 (3)
    Апрель 2011 (2)
    Февраль 2011 (5)
    Январь 2011 (3)
     
     
     
    Реклама