| |
|
|
| | Вот делаю новости, да что я вам тут сказки рассказывать буду )) Все уже наверное мою тему видили :)
Вот она http://softtime.ru/forum/read.php?id_forum=1&id_theme=17240&page=1
Посоветуйте как возможно сделать подругому!
Сейчас я коментарии записываю так!
Есть страница Полных новостей!
Допусти
www.panker.ru/news/full/news39.php
на ней есть форма! Я ввожу ник и всё такое да и нажимаю ок!
Оттуда меян кидает в обработчик да!
Обработчик смотрит откуда пришёл человек! в данный момент он пришёл с www.panker.ru/news/full/news39.php он берёт последнею страницу и записывает коментарии в такуеже страницу ТОЛЬКО не в папку full а в папку coments
Но вот проблма! Если будет подделан реферал то мона засорить весь сервер файлами с коментами!
Вопрос вот в чём! :) Как можно сделать запись коментов не связываясь с рефералами! :)
Плиз не надо делать умный вид и говорить Вот туто функцию так туто так да и ваще ты всё знаеш :D я нефига не знаю :)) Плизз поподробней что как где и куда! КОнечно же не готовый код, его я позже попрошу :))) А пока просто пример мини какойнеть и так далее! =) | |
| |
|
|
| |
|
|
| |
для: Panker
(11.05.2006 в 06:15)
| | | Можно прошить HTML-форму сессией, так как это описывается в статье http://www.softtime.ru/info/articlephp.php?id_article=35. | |
| |
|
|
| |
|
|
| |
для: cheops
(11.05.2006 в 10:34)
| | | Мне все гвоорят то с сессиями лучше не связыватся легко взломать и прсот оговорят что то не так или как то с нии не удобно :( хз кочрое ! мне внушили что сессии не есть гууд :( | |
| |
|
|
| |
|
|
| |
для: Panker
(11.05.2006 в 10:36)
| | | Некоторые задачи без них невозможно решить - так как протокол HTTP достаточно ограничен. Взломать сессии не так просто, особенно если они передаются через cookie, а не методом GET. | |
| |
|
|
| |
|
|
| |
для: cheops
(11.05.2006 в 10:39)
| | |
[code]
<?php
// Инициируем сессию
session_start();
?>
<form action=handler.php method=post>
Имя : <input type=text name=name>
Пароль : <iput type=password name=pass>
<input type=submit name=send value=Отправить>
<input type=hidden name=session_id value=<?php echo session_id();?>>
</form>
|
Как видно HTML-форма содержит дополнительное поле с именем session_id. После того как пользователь нажимает на кнопку "Отправить" данные отправляются обработчику:
<?php
// Инициируем сессию
session_start();
// Сравниваем переданный идентификатор из формы с
// текущим идентификатором сессии
if($_POST['session_id'] != session_id())
{
exit("Попытка передачи данных с другого хоста. Скрипт остановлен.");
}
// Дальнейшая обработка данных...
?>
|
В котором значение поля session_id проверяется с текущим идентификатором сессии.
[/code]
Вроде прочитал вроде понел да!
Но мне интиресно вот что!
if($_POST['session_id'] != session_id())
{
exit("Попытка передачи данных с другого хоста. Скрипт остановлен.");
}
|
Как ана узнаёт что сессия именно с моего хоста?
И ваще в крадце как она рабоатет :)
Жилательно ещё скажите что сессии самое лучшее решение )))
А то вам то больше доверия )) у буду я спокоен :) | |
| |
|
|
| |
|
|
| |
для: Panker
(11.05.2006 в 10:41)
| | | Будь спокоен товарисч :-) Сессии всегда самое лучшее решение.
На счет взлома - хотел бы я посмотреть на того монстра, который имеет такой канал, чтобы попытаться подобрать сессии.
Но смысл даже не в подборе, а в том, что нужно именно с помощью сессий ограничить количество попыток и время поста комментов, тогда подобрать сессию будет еще нереальнее. | |
| |
|
|
| |
|
|
| |
для: XPraptor
(11.05.2006 в 11:30)
| | | Так ))) теперь я спокоин :))
Вот тока 1 вопрос! Я выше написал ну не я а из статьи софт таймовской взял! нуежели эо всё что надо втсавить сделать?
Или ещё что то потребуется!
А то я наченаю всё делать и в конце понимаю где то я не дочитал или не допонел :) | |
| |
|
|
| |
|
|
| |
для: Panker
(11.05.2006 в 12:34)
| | | Если же всё так да! ТО!
<?php
Error_Reporting(E_ALL & ~E_NOTICE);
ob_start ();
session_start();
if($_POST['session_id'] != session_id())
{
exit("Попытка передачи данных с другого хоста. Скрипт остановлен.");
}
if(ereg($_SERVER['SERVER_NAME'], $_SERVER['HTTP_REFERER']))
{
include "config/cfg.php";
include "config/config.php";
//Referalnay stranica
if(file_exists("data/coment/$pisem") == 0 )
{
$files1 = fopen("data/full/$pisem", "a");
$files2="<? include '../../data/coment/$pisem'; ?>";
fputs($files1, $files2."\n");
fclose($files1);
}
else
{
};
$f = fopen("data/coment/$pisem", "a"); //Записываем маленькие новости сюда!
$n=file("data/coment/$pisem");
$print_news="<b>$Cname</b><br>$Cmail<br><i>$Ccoment</i> -----> $data<br><hr>";
fputs($f, $print_news."\n");
fclose($f);
$f = fopen("data/full/$pisem", "a"); //Записываем маленькие новости сюда!
$n=file("data/full/$pisem");
}
else
{ echo " Нет не надо таких коментов нам! "; };
ob_end_flush ();
?>
|
и сам код формы с какой посылаем
<? include '../../include/top.php'; ?>
<br> Новсоти котоыре будут в полной странице <br><br><br>
<form method=POST action=../../form_coment.php><p>
<input type=text name=Cname size=20 value=NICK><br>
<input type=text name=Cmail size=20 value=MAIL><br>
<textarea rows=2 name=Ccoment cols=20>КОМЕНТАРИИ</textarea><br>
<input type=hidden name=session_id value=<?php echo session_id();?>>
<input type=reset value=Сброс name=B2>
<input type=submit value=Отправить name=B1><br>
</form>
<? Error_Reporting(E_ALL & ~E_NOTICE); ?>
|
Но почему то кажится не так то всё просто да =) | |
| |
|
|
| |
|
|
| |
для: Panker
(11.05.2006 в 12:57)
| | | Я ещё тут | |
| |
|
|
| |
|
|
| |
для: Panker
(11.05.2006 в 16:11)
| | | Тема опустилась почти на вторую странциу!
Поднял!
И ещё вот!
Копал литературу по яку! нечгео не нашёл ! и друзей в он лайне не было!
Pantil приходил тно что то не ответил времени видать ен было :( | |
| |
|
|
| |
|
|
| |
для: Panker
(11.05.2006 в 19:08)
| | | Сек я не понел! как тк!
Смотрите у меян же новостей 1000000 штук! И я узнаю реферала и с помощью его узнаю куда писать коменты!
А ссесия же не даёт рефа а если она даёт число допустим то как мне узнать где получено это число или она по рефу тоже судит а? | |
| |
|
|
| |
|
|
| |
для: Panker
(11.05.2006 в 19:28)
| | | Игнор что ли ? :) | |
| |
|
|
| |
|
|
| |
для: Panker
(11.05.2006 в 22:04)
| | | В чём вопрос? | |
| |
|
|
| |
|
|
| |
для: cheops
(11.05.2006 в 23:47)
| | | Про сессии! там наверху вопроса 3! Как они работаю! как сделать всё! | |
| |
|
|
| |
|
|
| |
для: Panker
(12.05.2006 в 00:32)
| | | Сессии работают так, как у вас написано.
>Как она узнаёт что сессия именно с моего хоста?
Сессия с чужого хоста быть не может, так как все данные помещённые в сессию не покидают сервер. Обмен идёт только уникальным идентификатором SID - если нет сессии с таким SID следовательно и воспользоваться ей нельзя. | |
| |
|
|
| |
|
|
| |
для: cheops
(12.05.2006 в 11:29)
| | | выше код правельный я написал? если да то мне пишут что не с того хоста идёт сесия и операция остановлина | |
| |
|
|
| |
|
|
| |
для: Panker
(12.05.2006 в 17:27)
| | | Странно, а cookie в браузере включены? | |
| |
|
|
| |
|
|
| |
для: cheops
(12.05.2006 в 17:42)
| | | да включены | |
| |
|
|
| |
|
|
| |
для: Panker
(12.05.2006 в 19:30)
| | | А я ещё не разробрался :(( 4 дня уже :( | |
| |
|
|
| |
|
|
| |
для: Panker
(13.05.2006 в 15:41)
| | | Настройте конфигурационный файл php.ini так, чтобы он сохранял файлы сессий на жёсткий диск, как это описывается в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=415 - это позволит вам визуально контролировать их создание. | |
| |
|
|
| |
|
|
| |
для: cheops
(13.05.2006 в 18:06)
| | | вроде сделал как там сказано но что то в темп нечгео не появилось * | |
| |
|
|
| |
|
|
| |
для: Panker
(13.05.2006 в 18:31)
| | | Блин а другие способы есть нет? для коментариев? | |
| |
|
|