Евгений Борисов
С нами с 17 декабря 2012; Место в рейтинге пользователей: #333 часа назад
Не отображаются добавленные поля в редактировании пользователя.
Добавил одно поле в «общую информацию», для другого создал вкладку, в ней ещё вкладку...
ExtraFields. Дополнительные поля для ресурса (modResource) и пользователя (modUserProfile). 31
Вчера в 11:28
$_modx->resource['tv-name']Или в чанках где-то внутри pdoResources
$_pls['tv-name']но лучше избегать дефис в названиях TV. Дефис н...
Получение tv поля ресурса 4
17 апреля 2024, 19:12
С расположение пакетов это одна из проблем которую на мой взгляд нормально не решишь, всегда на измене что то то можешь затереть
По этому и придумал ...
Эксперимент с Modx Extra + Docker 12
17 апреля 2024, 09:41
Исходники открою ага. В общественный репозиторий пока не переношу.
[modRetailCRM] - теперь бесплатный для всех. 2
17 апреля 2024, 03:30
В таком формате для одной формы будет работать (если вставить в чанк формы)?
<script>
document.addEventListener('fetchit:success', (e) =>...
[FetchIt] - Полноценная замена AjaxForm без зависимостей 57
16 апреля 2024, 22:00
Координаты можно в админпанели у ресурса в ТВ полях определять…
Для этого советую поставить компонент YandexCoordsTv
Так будет намного проще.
Как сделать отложенную загрузку для скриптов яндекс карт и рекапчи 3? 7
16 апреля 2024, 21:10
Спасибо огромное! Все как надо!
[miniShop2] Как таблицу товаров, сформированную через msGetOrder, разбить на отдельные табли... 2
16 апреля 2024, 17:44
Вам бы, коллеги, скооперироваться чтобы список ботов (user agent-ов) общий использовать для botAim и SmartSessions)
Предлагаю, если нужно, захостит...
Еще немного про сессии MODX, компонент smartSessions 72
Результат работы ошеломляет
И прекрати уже наконец людей вводить в заблуждения. Попахивает моветоном
$str = '123';
md5($str) = 202cb962ac59075b964b07152d234b70
Т.е. чтобы подобрать пароль 123, тебе нужно перебрать все возможные комбинации символов и букв. Поскольку тебе нужно целиком строчку подбирать, а не посимвольно.
С префиксом ситуация другая. Тебе нужно перебирать не всю строку сразу, а по отдельности каждый символ. Слепая SQL-injection на этом и основана, что берется 2 запроса к сайту. Которые приводят к разному выводу. Таким образом, берем некий символ из набора. И подставляем его в запрос. Если запрос отвечает 1 выводом. То символ выбран не верно. Если отвечает вторым выводом — то символ выборан верно и мы берем пробуем подобрать следующий символ неизвестной строки.
Таким образом, тут длина строки и разные регистры лишь ненамного увеличивают время перебора.
Раз уж ты любишь формулы и наглядые примеры, то дано:
Набор символов: 1234567890
Перебор хеша пароля из 3 символов: 3^10 = 59049 комбинаций
Посимвольный перебор строки из 3 символов: 10*3 = 30
Чуешь разницу? Если бы от твоего префикса генерировался некий хеш, то да. Для брута это бы существенно усложнило задачу. В твоем же случае sdfWE234s_wefSDf_ (цифры + буквы +буквы в верхнем регистре + символ _) = 63 символа. Это максимум 1071 запрос к серверу. Как думаешь, 1071 запрос может сервер обработать за 30 секунд? А если запросы еще слать параллельно, а не последовательно?
Ниже ответил как я работаю.
Поэтому в Revo я проверяю только самопис. А его в большинстве случаев ооочень мало. Поэтому чтобы из-за копеек не брать на себя ответственность я стараюсь обходить аудит revo стороной. Боле того, есть псевдозаказчики, которые хотят получить в отчете по аудиту все. Начиная от способов устранения, до способов взлома. В конечном счете начинают сами своим клиентам предлагать доп.услугу — аудит безопасности сайтов modx revo.
Поэтому мониторю и исправляю уязвимости только на тех проектах, которые находятся у меня в полной поддержке. Т.е. не разово платят за аудит, а ежемесячно, чтобы я мониторил состояние. Фиксил баги и оперативно удалял вирусы если вдруг они залезли, например, через ФТП. А эту услугу заказывают уже конечные клиенты, а не посредники. И то, только те, которые понимают что заказывают.
В общем если есть вопросы — обращайтесь через почту на modx@agel-nash.ru
Да. Тут XSS делится на 2 вида. XSS для внедрения JS кода. И XSS для внедрения MODX тегов. Многие разработчики не чувствуют разницу. Поэтому если и фильтруют, то по старинке через htmlspecialchars, а этого недостаточно, чтобы обезопаситься от внердения MODX тегов.
Если же начинать думать глобально. То рождаются костыли (на данный момент такая практика считается нормой — но на мой взгляд, эта норма граничит с дебилизмом)
А еще, если в запросе будет передано [[*id]], то modx вырежет это из текста. Если помните, был такой баг, когда передавали что-то в стиле [[[[[[[[[[[[[[[[*id]], чтобы получить [[*id]] и обойти встроенную фильтрацию. Пофиксили. Но сейчас есть еще один способ, но из-за множества условий, работает он далеко не везде. И тем не менее, вы уверены, что на вашем сайте новый способ не сработает?
Лично меня такая гибкость CMS не устраивает с огромным количеством оговорок не устраивает. Поэтому и использую MODX исключительно для визиток, где можно обойтись без этих хаков.
SQL
О том, что xPDO позиционируется как удобная прослойка между стулом и pdo. Но если pdo через плейсхолдеры подставляет данные и обрабатывает их. То xPDO иногда этим жертвует, чтобы пользователю дать синтаксический сахар. В итоге получаем конфуз, т.к. SQL запрос в xPDO иногда собирается конкатенацией строк, а не средствами pdo с обработкой.
Таким образом, программист пишет код думая, что данные будут сами обработаны в соответствии с моделями/схемами. Но они далеко не всегда обрабатываются. А если обрабатывать данные руками, то лично я не вижу разницы между xPDO и нативным pdo. Более того, xPDO мне только все усложняет заставляя делать еще какую-то не нужную работу.
*win — там окошечки. И окошечки можно мышкой перетаскивать. Поэтому нужно контролировать каждый пиксель
*nix — все в терминале. Он текстовый. Поэтому контролировать мы должны только все печатные символы.
Вывод: печатных символов меньше чем пикселей на экране. Поэтому *nix взломать проще.
Для чего я эту историю рассказал? Да для того, чтобы ты все-таки понял, как смешон в попытках доказать свою правоту аргументами, который вообще не имеют отношения к реальному положению вещей.
В общем печалька. Решения нет. Я думаю даже в ближайшем будущем не будет — все сведется к тому, что данные нужно фильтровать заранее. Так, как это делают до сих пор в MODX Evo. Так что получается, что xPDO далеко не PDO, а псведо-pdo с частичной обработкой входных данных + куча костылей.
Как пример https://premier-tur.com/sanitariums/abzakovo — страница объекта с несколькими каруселями и формой в произвольных местах. В итоге MODX теги обрабатываются не везде, а только там, где это нужно.
С шаблонными интернет-магазинами я не работаю, поэтому тут посоветовать ничего не могу. Ну а вообще Laravel — для всех остальных проектов сложнее визитки.
Тогда расходимся. Безопасность на высоте.