информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Атака на InternetСетевые кракеры и правда о деле Левина
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
 Зловреды выбирают Lisp и Delphi 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / web building
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
Извините, вы меня не так поняли ;) 25.08.04 13:51  Число просмотров: 2782
Автор: n0xi0uzz <Черкасов Виктор> Статус: Member
<"чистая" ссылка>
> аккаунтов? Куки не подойдут для хранения аккаутнов, так как
> хранятся на клиенте :) Может ты имеешь ввиду сессии? Так
> или иначе, на севрере хранить пароли желательно в хеше,
> хотя с последними новостями про md5 это может не помочь...
> поэтому скомбинируй хеш с каким-либо линейниы алгоритмом
> шифрования...
>
> Для сессии генерируй отдельный случайный идентификатор. Его
> можешь кидать в куки, тогда человек сможет закрыть окно с
> форумом а когда зайдет на него через 5 минут ему не
> прийдется снова вводить логин/пароль...

Я не для сохранения сказал, а для безопасности ;)
Так лучше использовать и хеш, и пароль?
<web building>
Форум на perl - первые проблемы. 25.08.04 10:19  
Автор: n0xi0uzz <Черкасов Виктор> Статус: Member
<"чистая" ссылка>
Начал писать свой форум на перл. Естественно, по ходу возникает очень много вопросов и проблем. Что-то пытаюсь решить сам, но возникают такие проблемы, решение которых я сам найти не могу.

Вот первый из них:
При открытии топа из раздела, выводятся сообщения в этом топе. Проблема в следующем - я не могу сделать так, чтобы сообщения выводились с первого до последнего (т.е. первое - самое верхнее, последнее - самое нижнее), как принято во многих форумах, в данный момент сообщения выводятся наоборот. Ниже даю код и надеюсь на вашу помощь:

if (($sect ne "") and ($id ne "")) { open $AT, "sections/$sect/$id.top"; @ATtheme = <$AT>; close $AT; for ($AT1= 0; $AT1< @ATtheme; $AT1++) { @ATtheme1[$AT1]= @ATtheme[@ATtheme- $AT1- 1]; } #постраничный вывод: $ATpages= int((@ATtheme- 1)/ 10); $Tpage= 0 if ($Tpage< 0) or ($Tpage> $ATpages) or ($Tpage ne int($Tpage)); print "<tr><td><center>\n"; if ($ATpages> 0) { print "Страницы: "; for ($ATtemp= 0; $ATtemp<= $ATpages; $ATtemp++) { print "<A href=?sect=$sect&id=$id&Tpage=".$ATtemp.">".($ATtemp+ 1)."</A> " if ($Tpage ne $ATtemp); print "".($ATtemp+ 1)."\n" if ($Tpage eq $ATtemp); } } print "<br><a href=forum.pl?sect=$sect>Назад в раздел</a></center></td></tr>"; # for ($i= $Tpage* 10; ($i< ($Tpage+ 1)* 10) and (@ATtheme1[$i]); $i++) { ($ATaut, $ATTheme, $ATmsg, $ATtime) = split(/;;;;;/, @ATtheme1[$i]); #Вывод непосредственно, сообщения ;) print "<tr><td><table align=center width=65%><tr><td>автор: $ATaut<br>Тема сообщения:$ATTheme<br>сообщение добавлено $ATtime</td></tr><tr><td>$ATmsg</td></tr></table></td></tr>"; } }
Ещё одна проблема 26.08.04 12:11  
Автор: n0xi0uzz <Черкасов Виктор> Статус: Member
<"чистая" ссылка>
В общем, возникла проблемка при выводе топиков из раздела.
В данный момент мой код выводит топики с последнего_добавленного да первого_добавленного, то есть, последний добавленный топ получается внизу, а мне надо наоборот и я не знаю, как это сделать =(
Плюс к этому, хочется к этой части кода добавить постраничный вывод, на каждой странице - по 10 топиков.
Ниже прилагаю нынешний код. Надеюсь на вашу помощь.

if (($sect ne "") and ($id eq "") and ($Tpage eq "") and ($act eq "")) { #считаем кол-во топиков в теме $b= 0; while (open $a, "sections/$sect/$b.top") { close $a; $b++; } print "<tr><td><center>Всего тем в разделе: ", $b, "\n"; print "<br><a href=\"forum.pl\">Назад на главную</a></center></tr></td>\n"; #выводим все темы из раздела: for ($a= 0; $a< $b; $a++) { open OTN, "sections/$sect/$a.top"; @a= <OTN>; $NumStr = @a; #кол-во строк в файле ;)) close OTN; ($Taut, $Ttheme, $Tmsg, $Ttime) = split(/;;;;;/, $a[0]); ($LTaut, $LTtheme, $LTmsg, $LTtime) = split(/;;;;;/, $a[@a-1]); $NumAns = $NumStr -1; #Кол-во ответов на тему print "<tr><td><center><a href=\"forum.pl?sect=$sect&id=$a\">$Ttheme</a><br>\n"; print "Тему создал <a href=forum.pl?act=viewauth&user=$Taut>$Taut</a> в $Ttime<br>\n"; #Выводим кол-во ответов: if ($NumAns != 0) { print "Кол-во ответов: $NumAns<br>"; }else { print "Тема пока что без ответов<br>"; } print "(Последнее сообщение добавил: <a href=forum.pl?act=viewauth&user=$LTaut>$LTaut</a> в $LTtime)</center></tr></td>\n"; } }

Заранее благодарен.
Сделай по аналогии с предыдущим. 26.08.04 12:49  
Автор: J'JF <Dmytro Volhushyn> Статус: Elderman
Отредактировано 26.08.04 12:51  Количество правок: 1
<"чистая" ссылка>
И вообще, блин, если хочешь нормальной помощи - дай хотя бы описание структуры форума. Потому как догадываться, что такое топики, темы, разделы, сообщения, что из них выше в иерархии, откуда что берется лично мне - влом (да и не только мне).
Так что будь добр, дай нормальную спецификацию!
И еще - у меня складывается впечатление, что ты где-то взял готовый код и просто хочешь, чтобы его за тебя переделали. Так не пойдет!
Или разубеди меня - опиши, к примеру, что ты делал, чтобы добиться ответа на вопрос, и что у тебя из этого получилось - а мы подскажем, в каком именно месте ты ошибся.
Хм.. 26.08.04 15:01  
Автор: n0xi0uzz <Черкасов Виктор> Статус: Member
Отредактировано 26.08.04 15:03  Количество правок: 1
<"чистая" ссылка>
> И еще - у меня складывается впечатление, что ты где-то взял
> готовый код и просто хочешь, чтобы его за тебя переделали.
> Так не пойдет!
> Или разубеди меня - опиши, к примеру, что ты делал, чтобы
> добиться ответа на вопрос, и что у тебя из этого получилось
> - а мы подскажем, в каком именно месте ты ошибся.

Да не собираюсь я никого разубеждать, это МОЙ код, это Я часами просиживаю за ним и всего лишь попросил вашей помощи, если тебе влом помочь, то не момогай, я же не заставляю ;) Просто я первый раз пишу такой крупный проект и я знаю, что у меня проблемы с пониманием циклов for...

> Потому как догадываться, что
> такое топики, темы, разделы, сообщения, что из них выше в
> иерархии, откуда что берется лично мне - влом (да и не
> только мне).

Объясняю иерархию форума:
Сначала идет раздел, в разделе находятся топики, а в топике - сообщения... (я думал, это всем понятно)...
Разделы находятся в папке sections. Название раздела (параметр $sect) - название папки. В каждой папке раздела находятся топики в виде файлов $id.top, где $id - номер топа, номера идут от 0 и далее.
Вроде все, если ещё что-то не понятно - скажите, я объясню ;)

Все ещё надеюсь на вашу помощь. Заранее благодарен...
Ну что, разобрался? 30.08.04 14:19  
Автор: J'JF <Dmytro Volhushyn> Статус: Elderman
Отредактировано 30.08.04 14:20  Количество правок: 1
<"чистая" ссылка>
> Просто я первый раз пишу такой крупный проект
> и я знаю, что у меня проблемы с пониманием циклов for...

Это зря. может, лучше сперва разобраться?

> Объясняю иерархию форума:
> Сначала идет раздел, в разделе находятся топики, а в топике
> - сообщения... (я думал, это всем понятно)...
> Разделы находятся в папке sections. Название раздела
> (параметр $sect) - название папки. В каждой папке раздела
> находятся топики в виде файлов $id.top, где $id - номер
> топа, номера идут от 0 и далее.

А первая строка в файле, насколько я понимаю, помимо всего прочего содержит название топика?

Все ведь достаточно просто:
Ты выводишь топики с нулевого по последний. Нулевой - самый старый. последний - самый свежий. твой код:
for ($a= 0; $a< $b; $a++) 
{...}

---
где $b - общее количество топиков в теме.
Для обратного вывода тебе стоит лишь обратить порядок вывода:
for ($a= ($b-1); $a>=0; $a--) 
{...}

---
и будет тебе счастье ;-)

P.S. пользуйся тегом <рre></рre>, иначе твой код читать не очень удобно.
Нокс.. Я уже мильйон раз объяснял.. 27.08.04 04:15  
Автор: !? <!?> Статус: Member
<"чистая" ссылка>
Перевожу на русский эту строку — for ($a= 0; $a< $b; $a++):
Для переменной $a (начальное значение — 0), при верности условия $a< $b определить цикл {ЦИКЛ} при этом увеличивая $a на один между итерациями.

А теперь переводи то что хочешь на аналогичный «русский» и пиши цикл.
С постраничным переводом туда же.
Да в том-то и проблема, я "расшифровать" имеющееся могу, а... 27.08.04 04:48  
Автор: n0xi0uzz <Черкасов Виктор> Статус: Member
<"чистая" ссылка>
> Перевожу на русский эту строку — for ($a= 0; $a< $b;
> $a++):
> Для переменной $a (начальное значение — 0), при верности
> условия $a< $b определить цикл {ЦИКЛ} при этом
> увеличивая $a на один между итерациями.
>
> А теперь переводи то что хочешь на аналогичный «русский» и
> пиши цикл.
> С постраничным переводом туда же.

Да в том-то и проблема, я "расшифровать" имеющееся могу, а составить свое, или изменить имеющееся - нет =( поэтому и попросил помочь...)

[offtop]
Дмитрий, выйди на связь ;) Аська, там, ирка - как те удобнее ;)
[/offtop]
Я думаю, что так: 25.08.04 11:14  
Автор: J'JF <Dmytro Volhushyn> Статус: Elderman
Отредактировано 25.08.04 11:14  Количество правок: 1
<"чистая" ссылка>
Вот этот код:
for ($AT1= 0; $AT1< @ATtheme; $AT1++) 
  {@ATtheme1[$AT1]= @ATtheme[@ATtheme- $AT1- 1];}

---

отвечает за сортировку твоих сообщений. Ты берешь их из текстового файла, в котором последняя запись соответствует самому свежему сообщению и сортируешь их в обратном порядке, так?
Таким образом, у тебя получается, что в массиве ATtheme1 самое свежее сообщение - самое первое.
Следовательно, в твоем скрипте самое верхнее сообщение будет соответствовать самому последнему в файле, то есть самому свежему.
Если тебя такой порядок не устраивает, поменяй этот код на
for ($AT1= 0; $AT1< @ATtheme; $AT1++) 
  {@ATtheme1[$AT1]= @ATtheme[$AT1];}

---

или просто замени все вхождения ATtheme1 на ATtheme
Ещё вопрос ;) 25.08.04 11:25  
Автор: n0xi0uzz <Черкасов Виктор> Статус: Member
<"чистая" ссылка>
Спасибо за совет, теперь все работает.
Теперь меня интересует следующая проблема, точнее, дилема:
я буду вводить на форуме обязательную регистрацию, но я не знаю, что лучше использовать для безопасности аккаунтов - хеш, сформированный из переменных окружения, или куки? а может, есть другие варианты?
проконсультируйте меня, пожалуйста, по этому вопросу...
Сессии 25.08.04 11:48  
Автор: J'JF <Dmytro Volhushyn> Статус: Elderman
<"чистая" ссылка>
Я с сессиями работал только на php - там весьма удобно все сделано. На перле с таким вопросом не сталкивался, но не думаю, что все это очень уж сложно ;-)
В общем:
perldoc CGI::Session
perldoc Apache::Session

или вот тут:

perldoc CGI::Session
perldoc Apache::Session
и вообще тут
аккаунтов? Куки не подойдут для хранения аккаутнов, так как... 25.08.04 11:47  
Автор: DgtlScrm Статус: Member
<"чистая" ссылка>
> Теперь меня интересует следующая проблема, точнее, дилема:
> я буду вводить на форуме обязательную регистрацию, но я не
> знаю, что лучше использовать для безопасности аккаунтов -
> хеш, сформированный из переменных окружения, или куки? а
> может, есть другие варианты?

аккаунтов? Куки не подойдут для хранения аккаутнов, так как хранятся на клиенте :) Может ты имеешь ввиду сессии? Так или иначе, на севрере хранить пароли желательно в хеше, хотя с последними новостями про md5 это может не помочь... поэтому скомбинируй хеш с каким-либо линейниы алгоритмом шифрования...

Для сессии генерируй отдельный случайный идентификатор. Его можешь кидать в куки, тогда человек сможет закрыть окно с форумом а когда зайдет на него через 5 минут ему не прийдется снова вводить логин/пароль...
Извините, вы меня не так поняли ;) 25.08.04 13:51  
Автор: n0xi0uzz <Черкасов Виктор> Статус: Member
<"чистая" ссылка>
> аккаунтов? Куки не подойдут для хранения аккаутнов, так как
> хранятся на клиенте :) Может ты имеешь ввиду сессии? Так
> или иначе, на севрере хранить пароли желательно в хеше,
> хотя с последними новостями про md5 это может не помочь...
> поэтому скомбинируй хеш с каким-либо линейниы алгоритмом
> шифрования...
>
> Для сессии генерируй отдельный случайный идентификатор. Его
> можешь кидать в куки, тогда человек сможет закрыть окно с
> форумом а когда зайдет на него через 5 минут ему не
> прийдется снова вводить логин/пароль...

Я не для сохранения сказал, а для безопасности ;)
Так лучше использовать и хеш, и пароль?
У клиента на компе в том или ином виде должен храниться... 25.08.04 21:56  
Автор: Heller <Heller> Статус: Elderman
<"чистая" ссылка>
У клиента на компе в том или ином виде должен храниться только его id и хеш. Причём id хранить и не обязательно - при грамотной генерации хеша. Однако я в своё время делал вот как: клиент хранил у себя id и "типа хеш" - который являлся случайно сгенерированным числом. Каждый раз при авторизации это число генерировалось занаво, а через какое-то время теряло свою актуальность (вместе с числом я хранил время последнего его использования).

Что выбрать - кукисы или адресную строку - вопрос спорный. Вообще люди, занимающиеся секьюрити рекомендуют в большинстве своём воздерживаться от использования кукисов, однако я не согласен. Мой собственный опыт показывает, что упереть можно как то, так и другое, но кукисы вообще говаря на порядок удобнее. Ещё можно для перехода по ссылкам можно использовать какую-нибудь функцию javascript, которая будет подставлять во время перехода значение хеша, и будет вызываться так:

<a href="javascript:play('куда_перейти','хеш')">

Таким образом хеш вытянуть станет практически нереально.
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach