Как отключить инвайты у юзеров?

Добрый день! Подскажите пожалуйста, как отключить раздачу инвайтов пользователями, но оставить такую возможность у админа?

17 комментариев

avatar
Можете просто в шаблоне ссылку отключить, пропишите условие
{if $oUserCurrent->isAdministrator()}
avatar
Будет работать до первого умного юзера.
Вот так и создаются уязвимости
avatar
Предложите свой вариант.
avatar
Увы, я лишь являюсь как раз таким «умным юзером» и в коде livestreet не разбираюсь (и не хочу, ибо ненавижу php), и могу лишь сказать, что так делать не стоит и надо допиливать непосредственно код движка.

Кстати, можно отправлять инвайты в свой личный блог. :)
avatar
и где по-вашему здесь уязвимость? это ведь не css…
avatar
Конкретно здесь её нету, но это не означает, что так делать хорошо. Уязвимостей такого типа на livestreet я насчитал четыре, и они присутствуют более двух лет.
avatar
Плюс к четырём уязвимостям ещё десяток не таких опасных недоработок этого же типа.
avatar
Сообщайте о них: github.com/livestreet/livestreet/issues/new
Тогда и увидим, насколько Вы «умный юзер», как заявляете.
avatar
Я, конечно же, уже сообщил в личку ori и PSNet. Разумеется, в открытую, в том числе на гитхабе, я подобные вещи писать не буду и могу лишь сообщить, что удалённые блоги, закрытые блоги и черновики может читать (и не только читать) абсолютно любой зарегистированный юзер.
avatar
Ну это серьезные баги. Если бы они были, их бы уже пофиксили, мне кажется. Или прямо сейчас на этом сайте работают? Сможете последний пост из этого блога вытащить?
avatar
Без проблем, но, к сожалению, используемые уязвимости подразумевают перебор, а на это нужно время. Если к вечеру буду свободен, чтобы переписать парсер на верстку synio, то вытащу.

Однако чтение удаленных комментов выполняется быстро, и скриншот с некоторыми удаленными комментами PSNet уже отправил ему в личку.
avatar
CSS вообще неуязвим :-)
avatar
Минусующие не понимают, что скрытие кнопки не означает отключение функционала?
avatar
Мне кажется эти события мало связаны. Вообще предложенное решение правки шаблона наверняка удовлетворяет требованиям ТС, потому что вероятность что кто-то будет эксплуатировать эту незакрытую бизнес-логику на его сайте близка к нулю. Но хорошо, давайте дополним ответ про условие в шаблоне и отключим её. Строку
if (!Config::Get('general.reg.invite')) {
нужно заменить на:
if (!Config::Get('general.reg.invite') or !$this->oUserCurrent->isAdministrator()) {

в github.com/livestreet/livestreet/blob/1.0.3-replication/classes/actions/ActionSettings.class.php#L399
avatar
вероятность что кто-то будет эксплуатировать эту незакрытую бизнес-логику на его сайте близка к нулю
Именно поэтому «до первого умного юзера». Коих, разумеется, может и не оказаться, и всё будет хорошо. Однако на очень активном tabun.everypony.ru таких умных юзеров и без меня набирается десятка два (уязвимости, найденные там ещё в 2012 году, имеются прямо на livestreet.ru до сих пор), и я, собственноручно слив оттуда 20 тысяч закрытых постов и 4 миллиона закрытых комментов, теперь на подобные недоработки не могу спокойно смотреть. Собственно, для уведомления разработчиков об уязвимостях и зарегистрировался тут. (Иду доставать пост из блога.)
avatar
С этого и нужно было начинать :-)
avatar
(Эх, а мне ещё полтора года назад говорили, что я слишком загадками говорю...)
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.