ExBB Community » » Уязвимости » Общие вопросы безопасности

Страниц (6): « 1 2 3 [4] 5 6 »
 

46. Светлана - 26 сентября 2010 — 01:31 - перейти к сообщению
Возможно, где-то обсуждалось, не нашла...
При просмотре форума через rss гостем, видны посты тем, разрешённых к просмотру только пользователям. На форуме всё в норме: гость этих тем не видит. Небезопасно, однако. В чём может быть причина? Спасибо.
47. yura3d - 28 сентября 2010 — 16:46 - перейти к сообщению
Светлана пишет:
Возможно, где-то обсуждалось, не нашла...
При просмотре форума через rss гостем, видны посты тем, разрешённых к просмотру только пользователям. На форуме всё в норме: гость этих тем не видит. Небезопасно, однако. В чём может быть причина? Спасибо.

Действительно, есть такая проблема в модуле RSS-ленты. Для исправления открываем файл modules/rss/frontindex.php, находим строку:
CODE:
if ($var['private'] === TRUE) return 0;

и заменяем её строками:
CODE:
if ($var['stview'] == 'reged' && !$fm->user['id'] ||
$var['stview'] == 'admo' && !($fm->user['status'] == 'ad' || $fm->user['status'] == 'sm' || isset($var['moderator'][$fm->user['id']])) ||
$var['private'] && !($fm->user['status'] == 'ad' || isset($fm->user['private'][$var['id']]))) return 0;

Теперь в RSS будут попадать только те сообщения, для просмотра которых у пользователей есть соответствующие права доступа (учитываются также индивидуальные права доступа к приватным разделам)
48. lisiycat - 28 сентября 2010 — 18:30 - перейти к сообщению
yura3d пишет:
Теперь в RSS будут попадать только те сообщения, для просмотра которых у пользователей есть соответствующие права доступа (учитываются также индивидуальные права доступа к приватным разделам)


Внес исправления, решил перепроверить.....Вобщем, для гостя, для простого юзера и для админа показываются в РСС одни и те же сообщения - из приватных разделов!
49. yura3d - 28 сентября 2010 — 20:10 - перейти к сообщению
lisiycat
Исправил предыдущее своё сообщение. К сожелению, из-за некоторых особенностей работы агрегаторов (браузеров) с RSS, не получилось быстро отловить ошибку Огорчение
50. altjo - 14 ноября 2010 — 17:05 - перейти к сообщению
Скрытый текст:
Для просмотра Вам необходимо авторизоваться и оставить не менее 300 сообщений
51. yura3d - 14 ноября 2010 — 18:01 - перейти к сообщению
altjo
На самом деле, все процедуры, обеспечивающие проверку данных на сервере, у ExBB есть (например, проверка длины сообщения или подписи осуществляется). Проблема в том, что для некоторых полей не заданы допустимые максимальные значения полей, поэтому ограничение по максимальной длине изначально не применяется для ICQ и других полей

В самое ближайшее время выложу исправление
(Добавление)
altjo
Заплатка и комментарии к ней доступны здесь
52. alexx - 14 ноября 2010 — 20:39 - перейти к сообщению
yura3d
Нет такой строки у меня в файле register.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:
и замените её строкой:
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']))) {

У меня вот как
CODE:
include('language/'.DEF_LANG.'/lang_tz.php');
$fm->input['timedifference'] = (isset($tz[$fm->input['timedifference']])) ? $fm->input['timedifference']:0;

if ($fm->exbb['wordcensor'] === TRUE && $fm->bads_filter($fm->input['signature'],0) === TRUE) {
$fm->_Message($fm->LANG['Registration'],$fm->LANG['NoProfanity']);
}

$siglines = explode("\n",$fm->input['signature']);
if (count($siglines) > $fm->exbb['max_sig_lin'] || strlen($fm->input['signature']) > $fm->exbb['max_sig_chars']) {
$fm->_Message($fm->LANG['Registration'],sprintf($fm->LANG['SigOptions'],$fm->exbb['max_sig_lin'],$fm->exbb['max_sig_chars']));
}

if (!preg_match("#^[A-Za-z0-9-_]{1,}\.[A-Za-z]{3,4}$#is",$fm->input['useravatar']) || !file_exists('im/avatars/'.$fm->input['useravatar'])) {
$fm->input['useravatar'] = 'noavatar.gif';
}
} else {
$fm->input['homepage'] = $fm->input['icqnumber'] = $fm->input['aolname'] = '';
$fm->input['location'] = $fm->input['interests'] = $fm->input['signature'] = '';
$fm->input['timedifference'] = 0;
$fm->input['useravatar'] = 'noavatar.gif';
}
return;
}

?>
53. Светлана - 14 ноября 2010 — 21:05 - перейти к сообщению
alexx пишет:
Нет такой строки у меня в файле register.php
Так же.
54. yura3d - 14 ноября 2010 — 21:17 - перейти к сообщению
alexx
Светлана
Есть небольшая неточность в инструкции. В файле register.php именно ту строку, что есть у Вас:
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'])) {

Инструкция по установке критического обновления была обновлена
55. Светлана - 14 ноября 2010 — 21:19 - перейти к сообщению
ОК. Спасибо.
56. alexx - 14 ноября 2010 — 21:56 - перейти к сообщению
И, наконец, откройте файл 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" name="emailaddress" style="width: 200px" size="20" maxlength="100"></td>

Нет такой строки, есть такая у меня:
CODE:
<td class="profilright"><input type="text" name="emailaddress" style="width: 200px" size="20" maxlength="255" onblur="verify_register(this);" />
<span id="verify_emailaddress"></span></td>

Вопрос, можно просто заметить maxlength="255 на maxlength="100" ?,
тоесть вот так будет:
CODE:
<td class="profilright"><input type="text" name="emailaddress" style="width: 200px" size="20" maxlength="100" onblur="verify_register(this);" />
<span id="verify_emailaddress"></span></td>
57. yura3d - 14 ноября 2010 — 23:17 - перейти к сообщению
alexx
Всё верно Вы заметили. Просто у Вас установлен Мод: Динамическая проверка регистрационной формы (на Ajax)
Поэтому вместо строки:
CODE:
<td class="profilright"><input type="text" name="emailaddress" style="width: 200px" size="20" maxlength="255"></td>

Вам нужно искать строку:
CODE:
<input type="text" name="emailaddress" style="width: 200px" size="20" maxlength="255" onblur="verify_register(this);" />

и, соответственно, в ней изменять атрибут maxlength
58. igrok54 - 15 ноября 2010 — 03:53 - перейти к сообщению
Надеюсь, данные заплатки вносятся в готовящийся дистрибутив RC2?
59. robert - 15 ноября 2010 — 16:15 - перейти к сообщению
У меня тоже маленькая непонятка:
Цитата:
Теперь откройте файл include/vars.class.php, найдите строку:
..........................

Далее в этом же файле нужно найти строку:

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])) {

у меня в файле не {1,20} - а {1,32} -но заменил на то, как написано:
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])) {
но пока не пойму будут ли из-за этого проблемы?
60. Александр Васёвич - 23 декабря 2010 — 16:29 - перейти к сообщению
lisiycat пишет:
yura3d пишет:
Теперь в RSS будут попадать только те сообщения, для просмотра которых у пользователей есть соответствующие права доступа (учитываются также индивидуальные права доступа к приватным разделам)


Установил изменения как описано выше и проверил. У меня в Opere, Exsplorer всё работает замечательно, а вот Mozilla вываливает всё на всеобщее обозрение.

Яндекс.Метрика   

Powered by ExBB
[Script Execution time: 0.0526]     [ ]