Перейти к публикации

Гости отправляют сообщения Посетителям обходя запрет?


Рекомендованные сообщения

Здравствуйте,

не могу понять, каким образом Гостям удается отсылать сообщения на почту зарегистрированным посетителям сайта.

В настройках всех групп отключены "персональные сообщения", но включено "использование обратной связи".

 

Однако контактная форма по адресу /index.php?do=feedback не содержит возможности выбора имени пользователя. Там жестко заданный список "Администрация", "Редакция", "Рекламный отдел".

Встает вопрос - каким образом гостю удается поменять адресата?

 

Вариант с подменой ID в форме обратной связи не рассматриваю, так как он технически сложный, а люди, которые пишут сообщения вряд ли знакомы с HTML.

Вариант запрета "использование обратной связи" не подходит, так как минимум две учетные записи ("Редакция", "Рекламный отдел") не являются администраторами. Соответственно им нельзя будет направить сообщение.

Изменено пользователем YuriBtr
Ссылка на сообщение
Поделиться на других сайтах
15 минут назад, YuriBtr сказал:

Встает вопрос - каким образом гостю удается поменять адресата?

да ни чего они не меняют, это у dle стандартная функция, зайди по адресу /?do=feedback&user=10

Ссылка на сообщение
Поделиться на других сайтах
29 минут назад, odys сказал:

да ни чего они не меняют, это у dle стандартная функция, зайди по адресу /?do=feedback&user=10

Блин, вот не знал. Сейчас буду думать как это запретить.

Ссылка на сообщение
Поделиться на других сайтах
8 часов назад, YuriBtr сказал:

Сейчас буду думать как это запретить.

Выйдите с учетной записи на сайте и попробуйте фокус от odys-a

+ настройте права группам 

Ссылка на сообщение
Поделиться на других сайтах
10 часов назад, Nektov сказал:

Выйдите с учетной записи на сайте и попробуйте фокус от odys-a

+ настройте права группам 

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

Ссылка на сообщение
Поделиться на других сайтах
7 часов назад, YuriBtr сказал:

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

 

Или можете убрать из feedback.tpl тег {recipient} и самому вместо него прописать код, где сами пропишете, кому можно отсылать письма. value это id пользователя.

<select name="recip">
  <option selected="selected" value="1">Директор</option>
  <option value="2">Бухгалтер</option>
</select>

 

Если хотите, чтобы письма могли отсылать только одному пользователю, то вообще можете убрать выпадающее меню с пользователями. Добавьте вместо {recipient} что-то вроде

<input type="hidden" name="recip" value="1" />

 

Изменено пользователем radrigo
Ссылка на сообщение
Поделиться на других сайтах
В 06.03.2019 в 19:35, odys сказал:

/?do=feedback&user=10

 

5 минут назад, radrigo сказал:

input type="hidden" name="recip" value="1" />

это разные вещи. И вставка  input type="hidden" name="recip" не запретит отправить почту через  do=feedback&user=10

Изменено пользователем alex32
Ссылка на сообщение
Поделиться на других сайтах
6 минут назад, alex32 сказал:

 

это разные вещи. И вставка  input type="hidden" name="recip" не запретит отправить почту через  do=feedback&user=10

Ну а если добавить ещё такой редирект?

2a34bff9d533.png

 

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, radrigo сказал:

Или можете убрать из feedback.tpl тег {recipient} и самому вместо него прописать код, где сами пропишете, кому можно отсылать письма. value это id пользователя.

Именно так и сделано, но как правильно заметил alex32, это не влияет на отправку через do=feedback&user=10

 

1 час назад, radrigo сказал:

Ну а если добавить ещё такой редирект?

За идею с редиректом - спасибо, понадобились следующие правила:

 

исходный адрес:

/?*user=*&do=feedback*

адрес для редиректа:

/?do=feedback

 

исходный адрес:

/?*do=feedback*&user=*

адрес для редиректа:

/?do=feedback

 

исходный адрес:

/index.php?*user=*&do=feedback*

адрес для редиректа:

/index.php?do=feedback

 

исходный адрес:

/index.php?*do=feedback*&user=*

адрес для редиректа:

/index.php?do=feedback

 

Но этот способ не защитит от прямой подмены ID в HTML коде, при отправке запроса.

Выходит что единственная надежная защита - это создание белого списка.

Изменено пользователем YuriBtr
Ссылка на сообщение
Поделиться на других сайтах

А тупо им (нужным) отдельную группу создать ни как, с своими правами?

Изменено пользователем Captain
Ссылка на сообщение
Поделиться на других сайтах
<?xml version="1.0" encoding="utf-8"?>
<dleplugin>
	<name>Список получателей</name>
	<description></description>
	<icon></icon>
	<version></version>
	<dleversion></dleversion>
	<versioncompare>less</versioncompare>
	<upgradeurl></upgradeurl>
	<filedelete>0</filedelete>
	<needplugin></needplugin>
	<mysqlinstall><![CDATA[]]></mysqlinstall>
	<mysqlupgrade><![CDATA[]]></mysqlupgrade>
	<mysqlenable><![CDATA[]]></mysqlenable>
	<mysqldisable><![CDATA[]]></mysqldisable>
	<mysqldelete><![CDATA[]]></mysqldelete>
	<phpinstall><![CDATA[]]></phpinstall>
	<phpupgrade><![CDATA[]]></phpupgrade>
	<phpenable><![CDATA[]]></phpenable>
	<phpdisable><![CDATA[]]></phpdisable>
	<phpdelete><![CDATA[]]></phpdelete>
	<file name="engine/modules/feedback.php">
		<operation action="after">
			<searchcode><![CDATA[$recip = intval( $_POST['recip'] );]]></searchcode>
			<replacecode><![CDATA[$whiteList = [1,2,3,4,5,6,7,8];
if (!in_array($recip, $whiteList)) {
	$stop = 'Ошибка отправки E-mail сообщения';
}]]></replacecode>
		</operation>
	</file>
</dleplugin>

 

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...