Пользователь удаляет других пользователей

#1 18 февраля 2012 в 11:53
Добрый день, возникла неприятная проблема, конечно сложно это назвать дыркой, но все же.

Есть сайт на instant.cms.1.9 — один корявый пользователь рассылает спам
в виде таких ссылок

users/22/delprofile-yes.html

при нажатии на которую понятное дело пользователь удаляется без предупреждения

Понятное дело что пользователи сами виноваты в том что жмут на такие ссылки, но все же
подскажите как исправить эту проблему.

Заранее спасибо.
#2 18 февраля 2012 в 12:44
хрена се… действительно предупреждение не появляется? Это надо срочно как-то править.
#3 18 февраля 2012 в 12:45
Подписалась на тему.
Кнопочку "удалить" с профилей сняла, а до этого варианта самоудаления, решила, что мои пользователи не смогут додумаются. А нет, как оказывается, за них может подумать другой...

Буду благодарна за решение проблемы.
#4 18 февраля 2012 в 15:19
тоже подписался, надобно добавить подтверждение (вернее перекидывать на /delprofile.html) если referrer не совпадает с /delprofile.html
и возможность запретить удалять свой профиль (заменить ее на отправить письмо админу с причиной удаления к примеру)
#5 18 февраля 2012 в 15:39

хрена се..

fact
Такая же первая реакция! А может просто придумать хак, что типа если поставить на аву картинку deleted.jpg, то профиль автоматически удаляется? Или еще каким-то подобным способом… ))
#6 18 февраля 2012 в 15:41
Ну или же сделать окно удаления профиля с подтверждением капчи, это заставит пользователей задуматься что они делают!
#7 18 февраля 2012 в 17:23
По мне, решение такое не давать не проверенным пользователям, слать ссылки в личных сообщениях, или регуляркой вырезать ссылки по типу users/22/delprofile-yes.html да и сделать чтобы перед удалением своего профиля подтверждал во всплывающем окне свои намерения
#8 18 февраля 2012 в 17:50
Проблема в том, что ссылки вида users/22/delprofile-yes.html это уже подтверждение удаления.
Вредитель знает, что делает. Временное решение, откройте файл /components/users/frontend.php строку примерно 2119
  1. if (isset($_REQUEST['confirm'])){
и сразу после него вставьте
  1.  
  2. $check_uri = '/users/'.$data['id'].'/delprofile.html';
  3. $ref_uri = $inCore->getBackURL();
  4. if(!strstr($ref_uri, $check_uri)){
  5. cmsCore::addSessionMessage('Вы перешли по некорректной ссылке. Кто-то пытается удалить ваш профиль без вашего ведома. Обратитесь к администрации сайта', 'error');
  6. $inCore->redirectBack();
  7. }
  8.  
Это проверка, что пришли с нужной страницы.
Тем у кого уже удалили пользователей, их можно восттановить. Если админ зайдет по ссылке на профиль удаленного юзера, то увидит ссылку на восстановление. Или можно восстановить в БД.
#9 18 февраля 2012 в 18:37
Марат, ну а если пользователь сам захочет удалить профиль, ему ведь аналогичное сообщение выскочит?
#10 18 февраля 2012 в 18:42
Amun-Ra Египтолог, нет, если сам захочет, он придет со страницы delprofile.html
Условие проверки
  1. if(!strstr($ref_uri, $check_uri)
не выполнится и он удалится благополучно…
#11 18 февраля 2012 в 19:43
Я не программист, не знаю возможно ли, но в идеале сделать бы так чтобы пользователь, отправивший такую ссылку удалялся сам laugh. А вообще, наверное, нужно сделать цензуру — чтобы подобное нельзя было набрать в поле для отправки.
#12 19 февраля 2012 в 08:30
хак не срабатывает в ie
ссылку блокирует, а вот сам пользователь удалиться не может… 404

хотя наверно фиг с этим ie…
Марат +!
#13 19 февраля 2012 в 11:00

в идеале сделать бы так чтобы пользователь, отправивший такую ссылку удалялся сам

Positive
конечно такое возможно…
#14 19 февраля 2012 в 11:59

в виде таких ссылок
users/22/delprofile-yes.html
при нажатии на которую понятное дело пользователь удаляется без предупреждения

Root13
В багтреке отпишитесь.

И такие вещи лучше разработчикам в личку сразу писать, чтобы не светить сильно.
#15 19 февраля 2012 в 12:53

В багтреке отпишитесь.

И такие вещи лучше разработчикам в личку сразу писать, чтобы не светить сильно.

Anabiotick
Лучше решение на форуме увидить разработчик выложит новую версию инстанта, уже исправленным багом, а кто то не умеет обновляться ему что весь сайт сносить из за этого бага?
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.