|
|
|
| Можно ли сделать защиту, чтобы скрипт принимал данные только с определенной формы и в обход этой формы нельзя бы было ему отправить? Решение с проверкой на ввод текста с картинки не предлагать, сессии тоже не использовать. | |
|
|
|
|
|
|
|
для: opex
(24.11.2006 в 17:46)
| | Можно проверять реферер. Если пользователь приходит в обработчик не с той страницы, то гнать его взашей)) | |
|
|
|
|
|
|
|
для: aexb
(24.11.2006 в 17:58)
| | Не подходит, так как реферер меняется на клиентской стороне. | |
|
|
|
|
|
|
|
для: opex
(24.11.2006 в 18:10)
| | в смысле, реферер меняется на клиентской стороне? это как? | |
|
|
|
|
|
|
|
для: aexb
(24.11.2006 в 18:12)
| | Клиент ведь может передать серверу поле referer с любым значением, или это не так? | |
|
|
|
|
|
|
|
для: opex
(24.11.2006 в 18:19)
| | Это так | |
|
|
|
|
|
|
|
для: 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 и генерировать всю форму на одной странице. Но это опять же зависит от нужд конкретного скрипта. | |
|
|
|
|
|
|
|
для: aexb
(24.11.2006 в 19:08)
| | настолько легко и просто подделать? Ну тогда лол вам и +1 :-)
Уф...Вам пока рано советы давать...К Вашему сведению Referer можно сделать ЛЮБОЙ, можно его не посылать ВООБЩЕ. Поосторожнее...Вы на форуме программистов все-таки, а не в гостевой с ламерами общаетесь... | |
|
|
|
|
|
|
|
для: Unkind
(24.11.2006 в 19:20)
| | Согласен, что можно. Согласен, что любой. И даже знаю, какими способами. Но практика показывает, что где-то 70-80% хакеров этим не занимается. И потом, извиняюсь, кроме меня пока никто ничего дельного не предложил. | |
|
|
|
|
|
|
|
для: aexb
(24.11.2006 в 19:27)
| | Согласен, что можно. Согласен, что любой.
Рад, что Вы быстро поменяли мнение.
Но практика показывает, что где-то 70-80% хакеров этим не занимается.
А Вы считаете нужно быть таким уж умным для этого? :)
И потом, извиняюсь, кроме меня пока никто ничего дельного не предложил.
Потому что уже много раз говорилось, что защиту передачи данных с чужого хоста кроме как с помощью генерации картинки сделать нельзя. Сессии тоже довольно просто обходяться.
Даже над картинкой придется поработать, чтобы ее нельзя было считать роботу, иначе, если она будет состоять из одинаковых символов ее можно будет считывать. Правда, тут придется делать индивидуально для каждого сайта.
Вывод: без генерации качественной картинки послать данные можно, если захотеть. Так что и предлагать нечего. | |
|
|
|
|
|
|
|
для: Unkind
(24.11.2006 в 19:50)
| | Согласитесь, что проблема более чем актуальна. Вот хочу спросить, когда данные отправляются с формы скрипту то они отправляются с ip сервера (т.е. localhost) или ip клиента? Или это зависит от того, относительный или абсолютный адрес указан в action? | |
|
|
|
|
|
|
|
для: opex
(24.11.2006 в 20:16)
| | Прошу прощения, неужели никто не может помочь? | |
|
|
|
|
|
|
|
для: 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 | |
|
|
|
|
|
|
|
для: opex
(27.11.2006 в 20:39)
| | Если делать всё силами исключительно веб-сервера, то такая защита ещё не была изобретена. Например, как бы ни старались программисты билайна защитить свою веб-форму для отправки смс, мой скрипт, работающий на локальном хосте, исправно отсылает эти самые сообщения и веб-сервер билайна покорно всё принимает. Если гнаться за мега-безопасностью, тогда можно дойти до крайности, когда в некоторых случаях ничего работать не будет. Взять, например, защиту дисков от копирования StarForce. Программисты слишком привязались к железу (или к чему там ещё), поэтому зачастую диски со "звёздной" защитой не читаются на старых приводах или в других, менее очевидных случаях.
Можно, конечно, прошить форму вдоль и поперёк сессиями, наставить кукисов, подключить к работе JavaScript, flash, Java в конце концов... всё равно можно сделать форму на другом сайте и, прикинувшись браузером, отправить все данные с другого сервера. "Но почему тогда народ защищает формы картинками, js, кукисами и фиг его знает чем ещё?" - спросите вы... я отвечу - для уменьшения количества случаев подделки формы. Для знающего человека не составит проблемы заставить скрипт прикинуться браузером. Но действительно знающих это не так уж и много, хотя тут делов всего ничего - только и нужно, что напрячь движок pcre да знать минимум из спецификации протокола http. От того количество фейковых форм гораздо меньше, чем при использовании простой формы. | |
|
|
|