yura3d |
Отправлено: 14 ноября 2010 — 17:23
|
ExBB Team ExBB Developer ExBB Mods Author
Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009
Откуда: Минск, Беларусь
Репутация: 353
|
M-A-X пишет:Как только такие бреши можно допускать?
Ядро форума досталось нам в наследство от предыдущего разработчика, поэтому подобные издержки вполне возможны. Просмотреть весь форум силами фактически одного человека (поскольку сейчас только я занимаюсь ядром ExBB FM 1.0) невозможно. Однако я считаю невероятно ценным тот факт, что мы ничего не скрываем от наших пользователей, всегда информируем о возникших проблемах и стараемся максимально быстро реагировать на любые изменения ситуации с безопасной работой ExBB, выпуская заплатки. Этим себя утруждают далеко не все наши потенциальные конкуренты
(Добавление)
По поводу опубликованной здесь информации, уже есть обновление. Данное критическое обновление устраняет возможность ввода неограниченных по длине данных в профиле пользователей, при регистрации, а также при отправке личных сообщений. Ввод подобных ограничений в целом положительно скажется на стабильности работы форума, а также позволит защитить форум от злоумышленников, которые могут воспользоваться этой особенностью с целью переполнения памяти, отведённой скриптам PHP на сервере
Крайне рекомендуется установить следующую заплатку как можно быстрее!
Откройте файл profile.php, найдите строки:
CODE: $fm->input['icqnumber'] = (preg_match("/^[0-9]+$/", $fm->input['icqnumber'])) ? $fm->input['icqnumber']:'';
$fm->input['aolname'] = (strlen($fm->input['aolname']) >= 3) ? $fm->input['aolname']:'';
$fm->input['location'] = (strlen($fm->input['location']) >= 3) ? $fm->input['location']:'';
$fm->input['interests'] = (strlen($fm->input['interests']) >= 3) ? $fm->input['interests']:'';
и замените их строками:
CODE: $fm->input['icqnumber'] = (preg_match("/^[0-9]{5,9}$/", $fm->input['icqnumber'])) ? $fm->input['icqnumber']:'';
$fm->input['aolname'] = (($l = strlen($fm->input['aolname'])) >= 3 && $l <= 32) ? $fm->input['aolname']:'';
$fm->input['location'] = (($l = strlen($fm->input['location'])) >= 3 && $l <= 100) ? $fm->input['location']:'';
$fm->input['interests'] = (($l = strlen($fm->input['interests'])) >= 3 && $l <= 100) ? $fm->input['interests']:'';
Аналогичные изменения необходимо произвести и в файле register.php.
Далее в файле profile.php найдите строку:
CODE: if ($fm->input['useravatar'] != '' && (!preg_match("#^[A-Za-z0-9-_]{1,}\.[A-Za-z]{3,4}$#is",$fm->input['useravatar']) || !file_exists('im/avatars/'.$fm->input['useravatar']))) {
и замените её строкой:
CODE: if ($fm->input['useravatar'] != '' && (!preg_match("#^[A-Za-z0-9-_]{1,64}\.[A-Za-z]{3,4}$#is",$fm->input['useravatar']) || !file_exists('im/avatars/'.$fm->input['useravatar']))) {
В файле register.php нужно найти строку:
CODE: if ($fm->input['inmembername'] === '') {
и заменить её строкой:
CODE: if ($fm->input['inmembername'] === '' || strlen($fm->input['inmembername']) > 20) {
Далее в этом же файле найдите строку:
CODE: if (!preg_match("#^[A-Za-z0-9-_]{1,}\.[A-Za-z]{3,4}$#is",$fm->input['useravatar']) || !file_exists('im/avatars/'.$fm->input['useravatar'])) {
и замените её строкой:
CODE: if (!preg_match("#^[A-Za-z0-9-_]{1,64}\.[A-Za-z]{3,4}$#is",$fm->input['useravatar']) || !file_exists('im/avatars/'.$fm->input['useravatar'])) {
Затем откройте файл messenger.php, найдите строку:
CODE: if ($fm->input['msgtitle'] == '') {
и замените её строкой:
CODE: if ($fm->input['msgtitle'] == '' || strlen($fm->input['msgtitle']) > 80) {
Теперь откройте файл include/vars.class.php, найдите строку:
CODE: if (preg_match("#[^A-Za-z0-9_\-\.@]#is",$this->input[$key])) {
и замените её строкой:
CODE: if (strlen($this->input[$key]) > 100 || preg_match("#[^A-Za-z0-9_\-\.@]#is",$this->input[$key])) {
Далее в этом же файле нужно найти строку:
CODE: if (preg_match("#^(www\.|)([A-Za-z0-9-_]{1,40}\.){1,3}[A-Za-z]{2,4}(/[\.~A-Za-z0-9_-]{1,20}|)$#is",$this->input[$key])) {
и заменить её строкой:
CODE: if (strlen($this->input[$key]) <= 255 && preg_match("#^(www\.|)([A-Za-z0-9-_]{1,40}\.){1,3}[A-Za-z]{2,4}(/[\.~A-Za-z0-9_-]{1,20}|)$#is",$this->input[$key])) {
Теперь осталось только разобраться с шаблонами. Откройте файл templates/ваш_скин/profile.tpl, найдите строки:
CODE: <td class="profilright"><input type="text" style="width: 200px" name="emailaddress" maxlength="255" value="{$fm->user['mail']}"></td>
CODE: <td class="profilright"><input type="text" style="width: 130px" name="icqnumber" size=13 maxlength="15" value="{$fm->user['icq']}"></td>
CODE: <td class="profilright"><input type="text" style="width: 150px" name="aolname" maxlength="255" value="{$fm->user['aim']}"></td>
и замените их соответственно строками:
CODE: <td class="profilright"><input type="text" style="width: 200px" name="emailaddress" maxlength="100" value="{$fm->user['mail']}"></td>
CODE: <td class="profilright"><input type="text" style="width: 130px" name="icqnumber" size=13 maxlength="9" value="{$fm->user['icq']}"></td>
CODE: <td class="profilright"><input type="text" style="width: 150px" name="aolname" maxlength="32" value="{$fm->user['aim']}"></td>
И, наконец, откройте файл templates/ваш_скин/agreed.tpl, найдите строки:
CODE: <td class="profilright"><input type="text" name="emailaddress" style="width: 200px" size="20" maxlength="255"></td>
CODE: <td class="profilright"><input type="text" style="width: 130px" name="icqnumber" size="13" maxlength="15"></td>
CODE: <td class="profilright"><input type="text" style="width: 150px" name="aolname" size="20" maxlength="255"></td>
и замените их соответственно строками:
CODE: <td class="profilright"><input type="text" name="emailaddress" style="width: 200px" size="20" maxlength="100"></td>
CODE: <td class="profilright"><input type="text" style="width: 130px" name="icqnumber" size="13" maxlength="9"></td>
CODE: <td class="profilright"><input type="text" style="width: 150px" name="aolname" size="20" maxlength="32"></td>
Это обновление обсуждается здесь, не нужно оставлять комментарии в данной теме! |
|
|
M-A-X |
Отправлено: 17 ноября 2010 — 13:01
|
Advanced Member
Покинул форум
Сообщений всего: 278
Дата рег-ции: Июль 2009
Откуда: Киев
Репутация: 10
|
Я помню, Вы полгода назад писали, только в официальные дистрибутив принят не был.
Может сейчас посмотрят его и примут.
Просто релиз нужен.
Или позиционировать его как бета версию рц2 (хотя какие беты-альфы уже могут быть, если это релиз кандидат), дать ссылку на скачивание.
Как быть с обновлением с существующего дистриба на Вашу сборку.
Думаю понятно, оставляем файлы в папках forumN, data, members, messages, search.
Остальные заменяем новыми или смотрим, что нужно добавить, если было сделано много изменений.
Если не сложно, сбросьте на m-a-x@kpitv.net. Буду благодарен. |
|
|
Defenderyk |
Отправлено: 21 ноября 2010 — 00:47
|
Super Member
Покинул форум
Сообщений всего: 1027
Дата рег-ции: Февр. 2009
Репутация: 31
|
кстати, небольшой вопросик, но думаю очень актуальный, ибо мог забыть, а API для входа и реги фейсбука, контакта, яндекса и рамблера будет приделана?
Это ж сразу позволит без регистрации привлечь очень много пользователей и соответственно популярность и для двига ИМХО
При этом возможно как то вызвать скрипт добавления записи на стене фейсбука и контакта, что Я на форуме таком-то (если эта идея не слишком невозможная, то думаю ооочеень интересная и полезная)
--------
описываю саму идею входа и реги через API
Если чел уже авторизован в соцсети, то ему просто вопрос: Войти через профиль (ВК, ФБ, Я, Р). Он нажимает ВОЙТИ и будет появляться формочка с двумя ссылками:
Создать профиль на форуме | я уже зарегистрирован
Т.е нажав на создать профиль будет создаваться профиль и юзеру надо будет ввести свой пароль, если же нажимает я уже зарегистрирован, то он просто входит под акком соц.сети |
|
|
yura3d |
Отправлено: 21 ноября 2010 — 16:27
|
ExBB Team ExBB Developer ExBB Mods Author
Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009
Откуда: Минск, Беларусь
Репутация: 353
|
Defenderyk пишет:описываю саму идею входа и реги через API
Описывать идею уже слишком поздно, т.к. релиз ExBB FM 1.0 RC2 готов и внесение функциональных изменений в него более не планируется. Если это будет необходимо и востребовано, предлагаемая функциональность будет реализована в виде дополнительных модов (например, идею с обновлением статуса на facebook и вконтакте реализовать достаточно просто)
igrok54 пишет:Согласен на 100%, знаю по собственному опыту. Если в RC2 хотят вылизать весь код, то мы никогда не получим эту версию.
Никто не собирается "вылизывать код". Просто нужно некоторое время для анализа и проверки некоторых фрагментов на предмет безопасной работы. На данный момент этот этап практически завершён
В дальнейшем все дискуссии по поводу релиза ExBB FM 1.0 RC2 перемещаем в эту тему, не нужно здесь оффтопить |
|
|
|