• Исполнитель скинул архив с трояном, он злоумышленник или сделал это случайно?

    ThunderCat
    @ThunderCat
    Shettest,
    затираю потому что получил ответ на свой вопрос от Drno, его я и ждал. Все остальные сообщения немножко мусор.
    Как его ответ коррелирует с вашим вопросом остается загадкой. Ответ про то как проверить "вирус ли это", вопрос же звучит "как проверить специально ли подолжили вирус".
    - Ало, логика, ты где?
    - Я вышла погулять...
  • Как на js перехватить ответ XMLHttpRequest запроса на странице?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    Vit, чет подозреваю что все не так сложно, просто надо заголовки нужные послать, что делается в 2 клика, открыл нетворк, кликнул запрос, посмотрел заголовки.
  • Как на js перехватить ответ XMLHttpRequest запроса на странице?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    не проще сделать запрос самому?
  • Основа основ: какие инструменты нужны и что надо знать чтобы написать программу?

    ThunderCat
    @ThunderCat
    mayton2019, стоит заметить что паскаль хотя и создан был "для обучения", по факту создавался из алгола, который в свою очередь был создан как замена фортрану, причем все они были языками "высокого уровня", хотя кто прогал на фортране, в комнате страха просто посмеивается... В итоге паскаль стал для поколения 90-00х годов вполне себе мейнстримом, что-то типа питона на сегодня. Ну и его производные, обжектпаскаль и дельфин были уже вполне юзабельным продуктом вплоть до 10х годов.
  • Исполнитель скинул архив с трояном, он злоумышленник или сделал это случайно?

    ThunderCat
    @ThunderCat
    Shettest,
    ну это как у предполагаемого убийцы спрашивать рядом с трупом "Это Вы его убили?"
    Ну и в чем проблема? Вы предполагаете как-то иначе вычислить специально ли он это сделал? Обычно полиция так и делает - если застает кого то у трупа спрашивает какое отношение он имеет к убийству. Разница в том что полиция расследует на основе улик, а вы можете полагаться только на слово, так как у вас нет полномочий просматривать его оборудование и софт... Так что, за неимением большего, спросить выглядит логичным решением. 99% что сам он не в курсе что его машина заражена, а вирус как раз такая штука, которая имеет свойство самостоятельно лезть куда не просят...
  • Как сделать кастомный mysql запрос от пользователя?

    ThunderCat
    @ThunderCat Куратор тега PHP
    Ипатьев, больше интересует в чем собсно затык, так как кроме "хочу написать" никаких конкретных вопросов не прозвучало...
  • Как сделать кастомный mysql запрос от пользователя?

    ThunderCat
    @ThunderCat Куратор тега PHP
    Как сделать кастомный mysql запрос от пользователя?
    что значит кастомный? И чем отличается от не-кастомного?
    Я хочу написать кастомную фукнцию
    И в чем проблема?
  • Возможно ли отправить в бд через sql запрос в формате BLOB, heic изображения?

    ThunderCat
    @ThunderCat Куратор тега PHP
    Bvivg,
    я сделал так, потому что картинки при попытке сохранить в папке допустим uploads летят в папку не ospanel/domains/project а в ospanel/userdata
    Ахренеть решение. "Я не нашел хлеба, по этому намазал паштет на торт"...
  • В чем отличие ngnix от golang?

    ThunderCat
    @ThunderCat
    DollyPapper, Так это для разработки, но тем не менее - обслуживание запросов он осуществляет. Другие языки тоже не сказать чтобы сильно пользуются встроенными веб серверами на проде. Почему - я уже объяснил выше.

    По этому я и сказал, что пхп не может жить без фронт сервера.
    Уточню, что не может на проде, что как раз не нужно от слова совсем. Для протестить локально этого хватает.
  • В чем отличие ngnix от golang?

    ThunderCat
    @ThunderCat
    Максим Федоров, Еще раз - перекладывать ответственность за обработку запросов из сервиса в приложение не лучшая идея, размазывание ответственности есть показатель непонимания как работает бизнес. Сервер и его софт обслуживает админ, а программисты не занимаются прикладными административными задачами по типу переадресаций, привязки доменов и разруливанием/кэшированием статики. По этому 99,8% серверов работают через прокси сервисы а-ля нжинкс/апач/лайтхттп. Хотя в своих работах не на дядю вы вольны использовать что угодно и как угодно, экономя время и место на диске без "лишних серверов".
  • В чем отличие ngnix от golang?

    ThunderCat
    @ThunderCat
    Максим Федоров, Проблема не в том что он не быстрый, или что-то не может, а проблема в том что есть софт, заточенный под конкретные задачи. С готовым обслуживанием и кучей настроек, стандартизирующий область. Писать сервер на ЯП - вынос обслуживания в код, вместо обслуживания сервиса, что может быть приемлемо для какого-то кастомного решения или домашней поделки, но для бизнеса гемор и боль.
  • В чем отличие ngnix от golang?

    ThunderCat
    @ThunderCat
    DollyPapper,
    Это PHP не может жить без фронтенд сервера
    php -S localhost:8000
    Все вышеперечисленные языки, "обходящиеся" без сервера, будут страдать точно так же, так как нжинкс не просто прокладка, а хорошо настроенный инструмент, написанный под конкретные задачи, с которыми сложно справиться средствами серверных языков, и смысл реализовать еще один веб сервер как бы отсутствует в большинстве случаев. Ну и для универсализации. То что в языки встроен функционал, способный обслуживать запросы, не делает их вебсервером-в-себе.
  • В чем отличие ngnix от golang?

    ThunderCat
    @ThunderCat
    NikitaW, нжинкс - софт, позволяющий обращаться к физическому серверу по определенным протоколам (чаще всего это http/https). После получения запроса нжинкс (или любой другой вебсервер) поступает с запросом так, как прописывает в правилах админ. Чаще всего либо читает запрошенный ресурс из определенной папки сервера и отдает ее обратно клиенту, либо читает поток, отдаваемый другой программой, например скриптом на го или пхп.
  • Нужно ли делать условие перед вызовом метода для избежания выделения дополнительной памяти?

    ThunderCat
    @ThunderCat Куратор тега PHP
    попросил его показать источник, который показывает, что его способ добавляет производительность,
    То есть источник не показал, ограничившись маханием языком? Ну так я тоже так могу...

    Цифрами - цикл на 10 000 вызовов с условием и без, и когда разница будет хотя бы 10 секунд, а потребление памяти в несколько раз меньше, тогда есть смысл о чем то говорить. А п... редполагать - не мешки таскать...

    Может товарисч окажется прав, по тому что внутри метода еще 50 запросв в бд и 4 вызова сторонних апи...
  • Возможно ли авторизоваться если злоумышенник получит чужие куки?

    ThunderCat
    @ThunderCat
    video12,
    а в файлах пароли не шифруются?
    В каких файлах???

    я например смог с легкостью авторизоваться на qna habr через куки с php, а вот с логином и паролем бы не смог, так как на входе капча. Это еще один аргумент в пользу того что с куки легче взломать
    А при чем тут это? С логином и паролем и руками можно авторизироваться, и ломать ничего не надо. Зато навсегда, а кука со временем протухает, по уму при каждом новом логине она меняется.

    Это еще один аргумент в пользу того что с куки легче взломать
    Вообще не аргумент. Скорее наоборот, при наличии куки вы не знаете механизм авторизации, выбранный на конкретном ресурсе, она может не сработать или умереть через 5 минут. Логин и пароль работают пока пользователь руками их не сменит. Смысл поста был в том что увести куки или пароль примерно одинаково сложно, о чем говорит большинство взломов, в основном ломающих системы сохранения данных, нежели пользователей.
  • Возможно ли авторизоваться если злоумышенник получит чужие куки?

    ThunderCat
    @ThunderCat
    video12, Где это пароли шифруются в браузере? Возьмите любой сервис с логином, введите логин/пароль и откройте инструменты разработчика. Засубмить форму, и посмотри что отправилось на сервер.
  • Как правильно вывести последнее сообщение в блок слева который будет на картинке?

    ThunderCat
    @ThunderCat Куратор тега PHP
    Во первых, таким образом вы получите не все диалоги, например не будет диалогов где текущий юзер что-то написал, но ответа не получил. Во вторых - прям по описанию строите запрос примерно так:
    SELECT 
             m.message, 
             max(m.date) message_date,  #последняя дата из выборки
             u.login, 
             i.img
        FROM messages m
        LEFT JOIN users u
        ON m.from_user_id = u.id #выбираем имя писавшего
        LEFT JOIN image i 
        ON m.from_user_id = i.obj_id #берем картинку писавшего
        AND i.obj_type = 'user' 
        AND m.to_user_id = :id #выбираем только наш айди "к юзеру" 
        GROUP BY m.from_user_id # группируем по "написавшим" юзерам, получая уникальные строки
        ORDER BY m.date DESC #сортируем по дате, получая самые последние сообщения


    Дальше надо смотреть по структуре, и возможно что-то подправить
  • Как правильно вывести последнее сообщение в блок слева который будет на картинке?

    ThunderCat
    @ThunderCat Куратор тега PHP
    Totobi, Ну и чего было не написать нормально?
    Нужен список всех диалогов текущего юзера,
    отображающий последнее сообщение для текущего юзера,
    отсортированный по дате сообщения,
    аватар
    и дату сообщения.


    Так?
  • Как правильно вывести последнее сообщение в блок слева который будет на картинке?

    ThunderCat
    @ThunderCat Куратор тега PHP
    не очень понимаю, зачем такая сложность? Нужно получить последний месаж от или к пользователю?
    SELECT m.*
        FROM messages m
        WHERE m.from_user_id = ? 
        OR m.to_user_id = ?
        ORDER BY m.date DESC
        LIMIT 1

    Если к готовому датасету нужны джоины типа картинок и имен - просто добавляем джоины. Зачем и откуда появился dialog_id? Если диалог это именно 2 пользователя, то зачем он? Если это чат на много пользователей, то и структура должна быть другая.

    Но Я столкнулся с проблемой, в PDO нельзя везде установить одно название для бинда значения
    Есть вариант неименованных плейсхолдеров, как я выше написал, тогда в $stmt->execute() просто передается массив, из которого по порядку берутся значения и ставятся вместо "?", типа
    $stmt->execute([$id, $id]);