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

Форум PHP

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

 

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

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

тема: Защита от передачи данных скрипту
 
 автор: opex   (24.11.2006 в 17:46)   письмо автору
 
 

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

   
 
 автор: aexb   (24.11.2006 в 17:58)   письмо автору
 
   для: opex   (24.11.2006 в 17:46)
 

Можно проверять реферер. Если пользователь приходит в обработчик не с той страницы, то гнать его взашей))

   
 
 автор: opex   (24.11.2006 в 18:10)   письмо автору
 
   для: aexb   (24.11.2006 в 17:58)
 

Не подходит, так как реферер меняется на клиентской стороне.

   
 
 автор: aexb   (24.11.2006 в 18:12)   письмо автору
 
   для: opex   (24.11.2006 в 18:10)
 

в смысле, реферер меняется на клиентской стороне? это как?

   
 
 автор: opex   (24.11.2006 в 18:19)   письмо автору
 
   для: aexb   (24.11.2006 в 18:12)
 

Клиент ведь может передать серверу поле referer с любым значением, или это не так?

   
 
 автор: ddhvvn   (24.11.2006 в 18:46)   письмо автору
 
   для: opex   (24.11.2006 в 18:19)
 

Это так

   
 
 автор: aexb   (24.11.2006 в 19:08)   письмо автору
 
   для: ddhvvn   (24.11.2006 в 18:46)
 

Гм... То есть, Вы хотите сказать, что вот это

<?php 
$referer
=getenv("HTTP_REFERER"); 
if (!
ereg("^http://www.myserver.com")) { 
    echo 
"hacker? he-he...\n"
    exit; 

?>

настолько легко и просто подделать? Ну тогда лол вам и +1 :-)
А если к этому присовокупить еще и проверку данных, то защита получится почти 100%. Хотя 100%, конечно, никогда не получить. Если надо будет взломать - взломают.

Добавил: еще можно использовать AJAX или просто JavaScript и генерировать всю форму на одной странице. Но это опять же зависит от нужд конкретного скрипта.

   
 
 автор: Unkind   (24.11.2006 в 19:20)   письмо автору
 
   для: aexb   (24.11.2006 в 19:08)
 

настолько легко и просто подделать? Ну тогда лол вам и +1 :-)

Уф...Вам пока рано советы давать...К Вашему сведению Referer можно сделать ЛЮБОЙ, можно его не посылать ВООБЩЕ. Поосторожнее...Вы на форуме программистов все-таки, а не в гостевой с ламерами общаетесь...

   
 
 автор: aexb   (24.11.2006 в 19:27)   письмо автору
 
   для: Unkind   (24.11.2006 в 19:20)
 

Согласен, что можно. Согласен, что любой. И даже знаю, какими способами. Но практика показывает, что где-то 70-80% хакеров этим не занимается. И потом, извиняюсь, кроме меня пока никто ничего дельного не предложил.

   
 
 автор: Unkind   (24.11.2006 в 19:50)   письмо автору
 
   для: aexb   (24.11.2006 в 19:27)
 

Согласен, что можно. Согласен, что любой.
Рад, что Вы быстро поменяли мнение.

Но практика показывает, что где-то 70-80% хакеров этим не занимается.
А Вы считаете нужно быть таким уж умным для этого? :)

И потом, извиняюсь, кроме меня пока никто ничего дельного не предложил.
Потому что уже много раз говорилось, что защиту передачи данных с чужого хоста кроме как с помощью генерации картинки сделать нельзя. Сессии тоже довольно просто обходяться.
Даже над картинкой придется поработать, чтобы ее нельзя было считать роботу, иначе, если она будет состоять из одинаковых символов ее можно будет считывать. Правда, тут придется делать индивидуально для каждого сайта.
Вывод: без генерации качественной картинки послать данные можно, если захотеть. Так что и предлагать нечего.

   
 
 автор: opex   (24.11.2006 в 20:16)   письмо автору
 
   для: Unkind   (24.11.2006 в 19:50)
 

Согласитесь, что проблема более чем актуальна. Вот хочу спросить, когда данные отправляются с формы скрипту то они отправляются с ip сервера (т.е. localhost) или ip клиента? Или это зависит от того, относительный или абсолютный адрес указан в action?

   
 
 автор: opex   (27.11.2006 в 20:39)   письмо автору
 
   для: opex   (24.11.2006 в 20:16)
 

Прошу прощения, неужели никто не может помочь?

   
 
 автор: deman-b   (27.11.2006 в 22:09)   письмо автору
 
   для: opex   (27.11.2006 в 20:39)
 

а в чём собственно проблема?
если вы про то что возможноли без использования куков, сессий, рисунков ... защитить скрипт от ложных данных ....
даже при использовании всего этого , бывает не спасает.(
http://softtime.ru/forum/read.php?id_forum=1&id_theme=28074&page=1
http://softtime.ru/forum/read.php?id_forum=1&id_theme=28398&page=1

   
 
 автор: Саня   (27.11.2006 в 22:20)   письмо автору
 
   для: opex   (27.11.2006 в 20:39)
 

Если делать всё силами исключительно веб-сервера, то такая защита ещё не была изобретена. Например, как бы ни старались программисты билайна защитить свою веб-форму для отправки смс, мой скрипт, работающий на локальном хосте, исправно отсылает эти самые сообщения и веб-сервер билайна покорно всё принимает. Если гнаться за мега-безопасностью, тогда можно дойти до крайности, когда в некоторых случаях ничего работать не будет. Взять, например, защиту дисков от копирования StarForce. Программисты слишком привязались к железу (или к чему там ещё), поэтому зачастую диски со "звёздной" защитой не читаются на старых приводах или в других, менее очевидных случаях.
Можно, конечно, прошить форму вдоль и поперёк сессиями, наставить кукисов, подключить к работе JavaScript, flash, Java в конце концов... всё равно можно сделать форму на другом сайте и, прикинувшись браузером, отправить все данные с другого сервера. "Но почему тогда народ защищает формы картинками, js, кукисами и фиг его знает чем ещё?" - спросите вы... я отвечу - для уменьшения количества случаев подделки формы. Для знающего человека не составит проблемы заставить скрипт прикинуться браузером. Но действительно знающих это не так уж и много, хотя тут делов всего ничего - только и нужно, что напрячь движок pcre да знать минимум из спецификации протокола http. От того количество фейковых форм гораздо меньше, чем при использовании простой формы.

   
Rambler's Top100
вверх

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