+20.99
331 читатель, 267 топиков

Отправитель письма при использовании sendmail

При отправки писем движком LiveStreet используя sendmail есть один нюанс, что отправителем письма (Return-Path) является какой-нибудь nobody@localhost или www-data@localhost или ещё что-то в подобном духе. (всё зависит от настроек сервера, но при виртуальном хостинге возможность исправить настройки сервера отсутствуют).

Изза чего письма могут оседать на некоторых спам фильтрах. или в некоторых webmailах или почтовых программах высвечиваться типа ваш@мейл On Behalf Of: nobody@localhost, что в принципе не кошерно.

Решение проблемы достаточно простое. (я думаю этот момент стоит внести в штатную сборку LiveStreet)

в файле engine/modules/mail/Mail.class.php

176 строка файла
в функции Init() находим
$this->oMailer->From=$this->sFrom;

и добавляем
$this->oMailer->Sender=$this->sFrom;


т.е. вот так выглядить функция после исправлений
	public function Init() {
		/**
		 * Настройки SMTP сервера для отправки писем
		 */
		$this->sHost     = Config::Get('sys.mail.smtp.host');
		$this->iPort     = Config::Get('sys.mail.smtp.port');
		$this->sUsername = Config::Get('sys.mail.smtp.user');
		$this->sPassword = Config::Get('sys.mail.smtp.password');
		$this->bSmtpAuth = Config::Get('sys.mail.smtp.auth');
		$this->sSmtpSecure = Config::Get('sys.mail.smtp.secure');
		/**
		 * Метод отправки почты
		 */
		$this->sMailerType=Config::Get('sys.mail.type');
		/**
		 * Кодировка писем
		 */
		$this->sCharSet=Config::Get('sys.mail.charset');
		/**
		 * Мыло от кого отправляется вся почта
		 */
		$this->sFrom=Config::Get('sys.mail.from_email');
		/**
		 * Имя от кого отправляется вся почта
		 */
		$this->sFromName=Config::Get('sys.mail.from_name');

		/**
		 * Создаём объект phpMailer и устанвливаем ему необходимые настройки
		 */
		$this->oMailer = new phpmailer();
		$this->oMailer->Host=$this->sHost;
		$this->oMailer->Port=$this->iPort;
		$this->oMailer->Username=$this->sUsername;
		$this->oMailer->Password=$this->sPassword;
		$this->oMailer->SMTPAuth=$this->bSmtpAuth;
		$this->oMailer->SMTPSecure=$this->sSmtpSecure;
		$this->oMailer->Mailer=$this->sMailerType;
		$this->oMailer->WordWrap=$this->iWordWrap;
		$this->oMailer->CharSet=$this->sCharSet;

		$this->oMailer->From=$this->sFrom;
		$this->oMailer->Sender=$this->sFrom; // 176 строка. фиксит return-path
		$this->oMailer->FromName=$this->sFromName;
	}

В заголовки отправлять 404 если по тегу нету топиков

Сейчас на ЛС есть «замечательная» возможность — если подставить любой тег, которого не существует:

http://livestreet.ru/tag/any_value


То показывается страница без топиков с кодом 200. Таким образом, если случайно где-то засветить такую ссылку, то она станет вполне адекватно индексироваться поисковиками.

Примечание:

«засветить» в данном контексте означает, что был топик с тегом «мывкиывиывиы», его проиндексировали ПС, потом топик отредактировали, невнятный тег удалили, но в кеше ПС эта ссылка осталась и будет там висеть вечно достаточно долго.

Нужно в ActionTag.class.php если не найдено топиков по тегу, то возвращать 404 или 301 на главную чтобы поисковики не индексировали отсутствующий тег.

Раскрытие директории в модуле сессий, часть 2

Что ж… модуль сессий в ЛС оказался слегка дырявым всего-навсего в пределах одного метода. Первая часть по раскрытию путей находится здесь, все тесты и описание будут приводится на основе исправленного модуля сессий из предыдущего топика.
В данном топике будет рассмотрено и исправлено 2 способа раскрытия путей на сайте под управлением ливстрит последней доступной версии (1.0.2).

Читать дальше →

Раскрытие директории в модуле сессий

В LiveStreet CMS последней версии (1.0.2) обнаружена уязвимость, которая раскрывает пути на сервере, связанная с модулем сессий. Ошибка связана с отсутствием проверки типа значения для установки нового id сессии при подмене User Agent.

Читать дальше →

Раскрытие директории в плагине «Sitemap»

В текущей версии плагина (0.4.0) Sitemap для LiveStreet CMS возможно раскрытие директории через вызов файла из директории /plugins/sitemap/tests/behat/features/bootstrap/FeatureContext.php, что приведет к ошибке php.

Читать дальше →

Разные шрифты в браузерах

Заметил, что на моем сайте в разных браузерах отличаются шрифты H1. Сначала подумал, что сам где-то накосячил, но на этом сайте тоже самое вот скрины из разных браузеров. В каждом все по разному.

Смотреть скрины

После установки на главной странице появляется javascript код

Устанавливаю версию 1.0.2 c официального сайта, все проходит успешно, а после перехода на главную страницу вижу такое:
javascript на главной
(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cu(a){if(!cj[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),b.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write((f.support.boxModel?"":"")+""),cl.close();d=cl.createElement(a),cl.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ck)}cj[a]=e}return cj[a]}function ct(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function cs(){cq=b}function cr(){setTimeout(cs,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;e=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?+d:j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"


Версия PHP 5.4.10

Попробовал на другом сервере с PHP 5.3, там все работает. Как на PHP 5.4 завести?

Видимость топиков из закрытого блога

Решил поискать на сайте livestreet.ru как правильно сбросить кеш не имея плагина админки от Вадима. Вернее мне надо сбросить кеш memcache
Ввел поисковый запрос "как сбросить кеш"
Первое что он мне выдал это топик «Активация/деактивация плагинов, „тухлый“ кеш и шатдаун». Смотрю автор — Avadim, смотрю блог — «Закрытый блог разработчиков» почитать полный топик конечно я не смог, нет доступа, но часть текста (до cut-а) видна, чего я считаю быть не должно.
Прошу разработчиков обратить на это внимание.

Ранее уже была похожая тема, но обсуждалась видимость комментов к топикам из закрытых блогов

tinyMCE не сохраняет текст при ajaxSubmit

Здравствуйте, столкнулся с этим на «Стене» в шаблоне Inside. Возможно в других шаблонан така-же проблема
при ajaxSubmit вылазит ошибка что длинна текста 0 символов.
Решается так: stackoverflow.com/a/4874915 т.е. надо перед отправкой запроса принудительно сохранить в tinyMCE данные