• Битрикс: форма обратной связи на AJAX. Почему нет результата в ответе ссервера?

    @f-end Автор вопроса
    Задержался немного с проверкой...

    Все-таки проблема в чем-то другом :(

    Вот объект $_POST:
    FEEDBACK_AJAX:"Y"
    MESSAGE:""
    PARAMS_HASH:"9bacde48eda26d431ef26c0ad582f49d"
    sessid:"100da3902888904ede180620618eea9e"
    user_email:"testsite@yan.ru"
    user_name:"admin"


    arResult при этом такой:
    AUTHOR_EMAIL:"testsite@yan.ru"
    AUTHOR_NAME:"admin"
    PARAMS_HASH:"9bacde48eda26d431ef26c0ad582f49d"


    А вот данные, которые передаются, если просто жамкнуть кнопку формы:
    sessid	"25e064c7f45d8c45da033f40ef0e3666"
    user_name	"admin"
    user_email	"testsite@yan.ru"
    MESSAGE	""
    PARAMS_HASH	"9bacde48eda26d431ef26c0ad582f49d"
    submit	"Отправить"


    и вот такой arResult:
    Array
    (
        [PARAMS_HASH] => 9bacde48eda26d431ef26c0ad582f49d
        [ERROR_MESSAGE] => Array
            (
                [0] => Вы не написали сообщение.
            )
    
        [MESSAGE] => 
        [AUTHOR_NAME] => admin
        [AUTHOR_EMAIL] =>testsite@yan.ru
    )
  • Битрикс: форма обратной связи на AJAX. Почему нет результата в ответе ссервера?

    @f-end Автор вопроса
    Спасибо! Вы, похоже, в правильном направлении меня направили.
    capCode! Как я сам не догадался, что это капча? Это как раз многое объясняет - я делаю fetch запрос без параметра credentials: 'same-origin'.
    Сегодня проверю содержание массива $_POST и, думаю, проблема решится.
    Пока не отмечаю решением (мало ли что), но как только подтвердится эта теория, обязательно это сделаю.

    Я просто на отложенных функциях зациклился и копал в этом направлении. Думал из-за чего-то подобного такая ерунда происходит.
  • Валидация файлов изображения на NodeJS?

    @f-end Автор вопроса
    Михаил Евдокимов:
    "А нам что надо? Сохраняем где нибудь несколько magic чисел только для нужных нам типов файлов и проверяем по этому списку. Эти первые байты они ведь уникальны для каждого типа файла (на сколько я знаю). А если злоумышленник добавит в начало какие то другие данные просто от балды то вряд ли с этим "вредоносным" файлом в дальнейшем вообще что нибудь можно будет делать. Я конечно не специалист в ИБ и во всей этой кухне но просто мне так кажется."


    На сколько я понял из этой статьи, все не совсем так. Вот цитата:


    "Проверка содержания файла изображения
    Вместо того, чтобы доверять заголовку Content-Type, разработчик PHP мог бы проверять фактическое содержание загруженного файла, чтобы удостовериться, что это действительно изображение.
    ....
    Можно подумать, что теперь мы можем пребывать в уверенности, что будут загружаться только файлы GIF или JPEG. К сожалению, это не так. Файл может быть действительно в формате GIF или JPEG, и в то же время PHP-скриптом. Большинство форматов изображения позволяет внести в изображение текстовые метаданные. Возможно создать совершенно корректное изображение, которое содержит некоторый код PHP в этих метаданных. Когда getimagesize() смотрит на файл, он воспримет это как корректный GIF или JPEG. Когда транслятор PHP смотрит на файл, он видит выполнимый код PHP в некотором двоичном «мусоре», который будет игнорирован. "
  • Валидация файлов изображения на NodeJS?

    @f-end Автор вопроса
    Михаил Евдокимов: Михаил, а добавьте пожалуйста это сообщение как ответ, а не как комментарий, чтобы я мог его отметить ответом. Я думаю, это лучшее, что можно придумать в рамках этой задачи.
  • Валидация файлов изображения на NodeJS?

    @f-end Автор вопроса
    Михаил Евдокимов: Михаил, спасибо за статью! Я не в коем случае Вас не упрекаю в чем-то, наоборот, привел Ваше решение как пример, причем одно из немногих, если вообще не единственное, найденное мной.

    На самом деле я вчера кое-что еще почитал по этому поводу из смежных языков (конкретно для JS все плохо) и сделал такие выводы:
    - проверка первых байтов в помогает только определить тип изображения, в случае, если по какой-то причине у него изменен mime-type. В плане безопасности эта проверка практически бесполезна.
    - если у файла проблемы с mime-type/расширением, его лучше вообще не принимать.
    - загруженный файл необходимо переименовать, чтобы у злоумышленника небыло возможности обратиться к нему.
    - загруженный файл не использовать, а нарезать из него изображений нужных размеров
    - если загруженный файл по размерам соответствует требованиям, то надо уменьшить его на один пиксель, а потом увеличить.
    - в процессе сжатия/обрезки файл с "левым" кодом скорее всего не будет преобразован и обработчик изображений выдаст ошибку - значит загруженный файл проблемный и его надо удалить
    - даже если файл был преобразован без ошибки (ну мало ли), сжатие/обрезка "убьют" потенциально вредоносный код внутри и сделают его нерабочим
  • Валидация файлов изображения на NodeJS?

    @f-end Автор вопроса
    Посмотрел этот модуль, по сути то же самое, что https://github.com/sindresorhus/file-type , который я упомянул в вопросе. Кто-то велосипед написал :)
    Но вопрос достаточности такой проверки по первым символям остается открытым.
  • Изучение React или Angular?

    Василий Назаров: Банк Тинькофф разрабатывает интерфейсы на Angular и переписывает старый код с 1-ого Ангуляра на актуальный.
  • Индексация AJAX страниц интернет-магазина?

    Дмитрий: вот тут можете прочитать про реализацию серверного рендеринга на одном из популярных фреймворков.
  • Индексация AJAX страниц интернет-магазина?

    Дмитрий: у вас отрисовалась разметка с помощью шаблона серверной стороны => с фронта скрипты привязались к соответствующим узлам => дальше все взаимодействие происходит как обычно: API, Ajax-запросы, перерисовка страницы....
    Вообще вопрос как-то странно поставлен. Наверное Вы имели ввиду не "асинхронно", а без перезагрузки страницы? Да. Без перезагрузки. Важно при первом попадании пользователя на любую страницу отрисовать разметку (она же будет отдаваться поисковым роботам), а затем все как в обычном SPA - все работает без перезагрузки.
  • Тестовое задание по Js, почему выдает ошибку?

    Сделайте на CSS https://codepen.io/nazarelen/pen/aNQNva
    Ну и на JS что-нибудь запилите для разнообразия, типа console.log('YES!'), раз по задаче требуется :)
  • В чем причина ошибки при проверке типов prop-types?

    @f-end Автор вопроса
    Вот блджад, автодополнение IDE подвело :)
  • Как НЕ дать пользователям скачать изображения сайта?

    Johnny Gat: зачем придираться? Это всего лишь пример проксирования. Вероятно, у разработчиков не стояла задача не дать пользователю сохранить изображение, иначе им ничто не помешало бы отдать что-то другое, а не текстовый файл. Это не готовое решение - потому и пишу в комментарии - это лишь наводка, в какую сторону копать.

    Я встречал однажды сайт, где подобным образом были скрыты картинки (он правда был не на PHP), вместо них отдавался файл с каким-то кодом. Изменение расширения не помогало его восстановить. Глубже лезть просто не имело смысла, трудозатраты были не сопоставимы с возможными результатами. Сейчас там другая версия и все картинки открыты, поэтому не могу дать ссылку.

    Но главное, это возможно, и на описание того, как это сделать я дал выше ссылку: прямой доступ к картинке закрывается, картинка загружается через скрипт, который управляет доступом к ней + настройки на сервере.

    Безусловно, пользователь в любом случае получит данные изображения в браузер и при должном усердии сможет получить доступ к картинке. В Вашем случае, например, простой заменой расширения. Но этот процесс возможно усложнить на столько, что пропадет просто смысл в этом, если конечно изображения не имеют какой-то безумной ценности и важности, такой, что человек этим озадачится вместо того, чтобы тупо сделать скриншот.
  • Как НЕ дать пользователям скачать изображения сайта?

    Johnny Gat: пример подобного решения - Ваша автарка на этой странице. Попробуйте кликнуть по ней ПКМ и сохранить.
  • Как НЕ дать пользователям скачать изображения сайта?

    Johnny Gat: нет, как раз отображаться на экране такие картинки будут, а вот при попытке сохранить их через ПКМ, будет вместо картинки сохраняться скрипт. Как вы сохраните картинку, которая выводится на экран таким кодом?
    <img src= "//domen.com/image.php?param=1&param=2" />
  • Как НЕ дать пользователям скачать изображения сайта?

    Думаю, самый подходящий Вам вариант описан тут: загружать картинки посредством скрипта и УРЛы изображений будут такие: image.php?param=1&param=2
    Сохранить их очень проблематично будет. Разве что скриншот сделать и вырезать, как сказали выше.
  • Почему babel не преобразует ES6 в одном из модулей?

    @f-end Автор вопроса
    Нашел настройку в webpack. Убрал exclude: /node_modules/ у babel-loader, теперь webpack обрабатывает node_modules, но падает с ошибкой "ReferenceError: Unknown plugin "transform-object-assign" specified ".

    В общем включение /node_modules/ в обработку, похоже, породит в перспективе больше проблем, чем решит.
  • Почему babel не преобразует ES6 в одном из модулей?

    @f-end Автор вопроса
    Я так и предположил, но не нашел нужной опции (искал в babel). И, наверное, включение такой опции здорово замедляет сборку?
  • Почему JavaScript не работает?

    Добавлю еще, что функция Sameheight объявлена, но не вызвана
  • Как делается подобный эффект в меню?

    Люто плюсую по поводу омерзительности сайта. Влажные фантазии дизайнера, выплеснувшиеся в никому не нужное абсолютно неюзабельное говно. Зачем подобные скриптопомойки вообще делают? (вопрос риторический) И какой дурак за это платит? (вот это действительно интересно узнать :))
  • Почему на срабатывает функция сохранения в БД в тесте Mocha?

    @f-end Автор вопроса
    Максим: Покопался в исходниках, докопался аж до драйвера, где и пропадает коллбек. Зато теперь кажется, я понимаю в чем дело: Mocha выполняет тесты вне приложения и, как следствие, соединения с базой данных в контексте, где выполняются тесты, нету.