Задать вопрос
  • Как пройти верификацию в Google Play Console в секции подтверждения страны?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    https://support.google.com/paymentscenter/answer/9...
    штатно смена страны только через создание нового профиля
    Ответ написан
    9 комментариев
  • Сервисы Google Play сбой на смартфоне как решить проблему?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Из разряда посоветуете что-нибудь. Почисти кеш у гуглплея
    Ответ написан
  • Как организовать оптимальную безопасность для своего онлайн мультиплеера на Android?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Сперва стоит подумать о своей безапосности - УК РФ Статья 171.2
    Если от мошеничества со стороны клиента легко защититься тем, что он
    может только сделать ставку/действие и ему переданы только данные карт, которые он вскрыл (получил на руки, козырь и т.д.), размер банка.
    То остается момент обмана со стороны сервера. То есть исходная колода и полный лог хода игры. Как это реализовать ?
    - А вот эта часть для просто разлекательной игры не нужна. Мы же не пишем казино ?
    Ответ написан
    1 комментарий
  • Как установить второй логотип вниз экрана?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    position: relative / absolute знаете ?
    https://learn.javascript.ru/position
    Ну и все как вы разложили на дивы вызывает вопросы.
    Ответ написан
  • Долговечен ли File_Id документа в тг?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    https://core.telegram.org/bots/api#using-a-local-b... - посмотри в эту сторону.
    Но имхо, Вы неправильно изначально сделали.
    Дистрибутив должен быть публичным, а через бота слать ключ активации лицензии.
    Ответ написан
    2 комментария
  • Как правильно составить регулярное выражение для проверки доменного имени?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    имхо бесполезная работа. Потому что
    не уточнено что считать доменом.
    Регуляркой Вы можете проверить только соответствует ли строка RFC 1035.
    Но и то Вы скорее всего будете проверять двух уровненые домены.
    ок. последний (верхний уровень) - может стоит проверять значение на существование такой доменной зоны ?
    com - есть, условно c9m - пока никто на себя не зарегил.
    И тут у нас уже пара тысяч зон есть. В регулярке все не перечислить.
    далее проверим второй уровень. в зоне ру 2-63 символа.
    Ок ну убедились, что допустимо. Но имя может быть запрещено
    Н-р: POLOVOI_ORGAN(из 3 или 5 букв).RU и все проверки покажут, что имя свободное, а вот при регистрации получишь отлуп. Имя зарегено - но может быть НЕДЕЛЕГИРОВАНО / ПРИПАРКОВОНО / РЕАЛЬНО ИСПОЛЬЗУЕТСЯ (сайт и/или почта)

    Третий уровень *.msk.ru - доменная зона.

    Так, что фиг вы регуляркой проверите, что строка это ДОМЕН.
    Ответ написан
    Комментировать
  • Как остановить бота без добавления в черный список?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    отпишись. После этого бот будет получать 403 (Forbiden) при попытке отправить Вам сообщение.
    после получения такой ошибки бот должен исключить Ваш тид из своей базы. Ну а если будет дальше долбиться, то телега его в конце концов забанит.
    Ответ написан
    Комментировать
  • Какие есть способы для google chrome исключить возможность записи экрана условными яндекс-вебвизорами на сайтах при моем посещении таких сайтов?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Вебвизор не записывает ваш экран. Когда вы просматриваете, то эмулируется его поведение. воспроизводятся
    данные собранные для одного из 1000 посетителей в сутки.
    Что позволяет отслеживать Вебвизор
    Существует 6 основных действий, которые отслеживает инструмент. Рассмотрим подробнее каждое из них и возможную пользу от их мониторинга.

    Движения курсора мыши. Нередко движения курсора соответствуют тому, как по странице перемещается взгляд пользователя. Соответственно, можно понять, какие из элементов сайта являются наиболее привлекательными для посетителей. Также это позволяет понять, насколько навигационные элементы удобны и понятны. Если после прочтения пользователем описания товара курсор начинает метаться из стороны в сторону, вероятно, это свидетельствует о том, что потенциальному клиенту трудно найти ключевые для покупки кнопки (добавление в корзину, переход на страницу с условиями доставки и т. п.).

    Клики. Ценность отслеживания этого действия трудно переоценить, особенно в совокупности с предыдущим. И речь идет не только о том, чтобы проанализировать переходы со страницы на страницу. К примеру, если много пользователей кликают на картинку товара в каталоге вместо того, чтобы нажать расположенную под ней кнопку «увеличить» — это однозначно свидетельствует о том, что выбранный формат демонстрации изображения большего размера не соответствует ожиданиям посетителей.

    Прокрутка страниц. Главное, что можно понять при анализе этого действия — стоит ли размещать важный контент и ссылки ниже первого экрана. Если большинство посетителей уходят с посадочной страницы, на которой размещен длинный текст со ссылкой на форму заявки в самом конце — значит, стоит попробовать разместить ее выше или визуально сократить объем текста (к примеру, переместить его часть в боковую колонку или уменьшить размер шрифта).

    Заполнение форм. Речь идет о том, что вебмастер сможет посмотреть, что пользователи набирают в различных формах — от внутреннего поиска до добавления комментариев и заполнения заявки. Соответственно, это может показать, какой контент или ссылку стоит добавить на landing page (если его часто ищут встроенным поисковым инструментом). В отношении форм заявки Вебвизор дает возможность понять, в полной ли мере пользователи понимают, что нужно указывать в каждом поле и в каком виде. При этом разработчики Вебвизора уточняют, что система не запоминает персональные данные пользователей и вводимые пароли.

    Выделение и копирование текста. В максимально наглядном виде показывает, какой контент наиболее интересен пользователям. Также это позволяет оценить качество текста — вряд ли посетители станут копировать контент, который не отвечает их требованиям. Наконец, это дает возможность понять, какие страницы имеют все шансы стать в ближайшее время неуникальными: если с какой-то из них часто копируют текст целиком или его значительную часть — вполне может быть, что вскоре он появится на другом ресурсе, и не факт, что поисковая система правильно определит первоисточник. Если тексты копируются слишком часто и это приводит к появлению их дублей в Сети, возможно, есть смысл защитить их от копирования (несмотря на то, что большую часть таких защит легко обойти, это все же поможет в поддержании уникальности существующего контента).

    Переход по страницам. В первую очередь отслеживание этого действия через Вебвизор поможет понять, насколько быстро пользователь переходит на нужные ему страницы и какую именно ссылку он использует (если их несколько).
    Ответ написан
    1 комментарий
  • Как в Google открыть от 50 до 100 вкладок с разными url-адресами?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    https://learn.microsoft.com/en-us/windows-server/a...
    У команды сортировки есть ключ включать в выходной файл только уникальные результаты.
    https://learn.microsoft.com/en-us/windows-server/a...
    команду for можно натравить на полученный в первом шаге файл
    Ответ написан
    Комментировать
  • Можно ли по получить div id вышестоящего блока в рамках одной collumn и вставить его в значение?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Батенька, вы уже дозрели до перехода от статичного html к его динамической генерации.
    Можно по классике возложить эту задачу на бакенд, а можно динамически собирать html из javascript.

    Но в обоих подходах потребуется понять, что вам не нужно кучу разных однотипных переменных.
    Да и сам подход стоит поменять.
    например кнопки оключить/подключить интернет.
    <button class="...  mySwithInet .... "  data-status="on/off"  data-device="alisa-1">Отключить интернет</button>

    по псевдоКлассу mySeitchInet навешивается слушатель нажатия. Аргументы(data-) можно получить так
    https://developer.mozilla.org/ru/docs/Learn/HTML/H...

    можно использовать parentElement, чтобы id устройства не писать кучу раз
    https://www.w3schools.com/jsref/prop_node_parentel...

    когда вы повесили слушателя, то внутри функции this будет указывать на нажатый элемент. И все остальное ищете через него.
    Ответ написан
    3 комментария
  • Пытаюсь установить программу из файла APK, но меня перекидывает на скачивание ShareIt?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Потому что гладиолус. Рут нельзя получить через apk файл.
    https://habr.com/ru/articles/541190/
    почитайте почему плохо пользоваться таким телефоном. Заодно хоть немного поймете, что
    получение привелегий не простая операция. Если провести аналогию с ПК, то взлом идет
    через дырки биоса или его замену.
    В момент начального пробуждения телефона можно перевести его в состояние, когда он будет принимать прошивку с внешнего устройства (компьютера)
    Ответ написан
    Комментировать
  • Автоматическое продление даты на сайте как сделать?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    https://stackoverflow.com/questions/4156434/javasc...

    Надеюсь далее сами поймете как поправить , чтобы считал начало следующей
    Ответ написан
    Комментировать
  • SELECT x FROM таблица с огромными полями. Создать ли отдельную таблицу с x для оптимизации?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Надеюсь индекс (id,book_id, title) у Вас построен ?
    Если да и оперативки достаточно, чтобы он целиком оставался в ОЗУ, то
    запрос select id,book_id,title выполняется без обращения к диску. Если памяти маловато, то перечитавает с диска только файл индекса.

    А вот для индекса только по book_id будет читать и основной файл.

    А так ваше предположение сделать кей - валуе хранилище для блобов вполне правильное.
    Будет прекрасно работать по первичному ключу.

    Но думаю пока дробить нет смысла. Просто пишите код так, чтобы потом можно было легко переделать.
    Н-р заведите две константы с одинаковым пока значением
    TABLE_CHAPTERS_INFO и TABLE_CHAPTERS_TEXT

    А разнесете их физически, после того как захотите добавить еще какие-то поля помимо титла. Н-р размер в байтах и / или листах, дату обновления
    Ответ написан
    3 комментария
  • Где в конфиге Apache2 посмотреть версию Php для конкретного сайта?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Вот реально проще из самого кода вызвать phpinfo или phpversion.
    Так как задать обработчик можно многими способами и в еще большем числе мест.
    Через .htaccess директивой AddHandler application/x-httpd-php-8.3 .php (конкретные цифры из установленных на хосте версий)
    Второй способ конфиг апача. Третий конфиг nginx.
    А если стоит что-то типа isp или plesk, то добавляется еще их конфигурационные файлы и пути, где они лежат.

    Ну и совсем базовые для ubuntu команды
    https://askubuntu.com/questions/1497120/trouble-up...
    Ответ написан
    Комментировать
  • Как скрыть Api ключи в react?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Извините, но ваша ситуация выглядит странно.
    Во первых, Вы взяли апи для отправки сообщений, которое позиционируется как не требующее серверной части :
    "Послать письмо из явоскрипта".
    Во вторых публичный ключ, который вы хотите скрыть - это аналог подменного номера телефона на досках объявлений. Типа написать письмо можно и ваш реальный емайл не светиться.

    В вашем случае "ключи доступа к сторонним сервисам никогда не передаются на сторону клиента" не принимимо.
    Это получается "масло масленное" .
    Ответ написан
  • Как предотвратить имитацию запросов?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    не удачный пример с платежными системами.
    Данные об оплате поступают от мерчанта.
    В 99% процентов случаев Ваш сайт просто отправляет посетителя на сайт платежной системы так как пройти сертификацию для работы с данными карт (Payment Card Industry Data Security Standard (PCI DSS) ) большой гиморой.
    Для переадресации требуется сумма платежа, идентификатор участника платежной системы в чью пользу оплата, обычно к обязательным полям добавляют возможность добавить идентификатор оплаты со стороны продавца.
    Названия полей и их количество немного отличаются от платежной системе к системе.

    Есть вторая схема. Предварительная регистрация платежа (бакенд дергает апи и получает ид оплаты). Редиректит пользователя на оплату конкретного счета.

    Факт успешной оплаты может проверяться по инициативе со стороны бека, так и через механизм обратных вызовов (хуков)

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

    Даже в этом случае (пользователь ничего не передает) верить не желательно.
    Стоит перепроверить контрольную сумму. Ограничить доступ к хукам по ip.

    Типовой способ защиты: расчет контрольной суммы от
    секретнаястрока+поле_данных1+поледанных2+....+полеN

    Но способ не подходит для JS так как строка будет видна :(
    Ответ написан
    Комментировать
  • Как рутировать устройство?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Чешир, вот уже год Вы перебираете вещи, которые давно перестали работать из-за новых ограничений андроид.
    Но в этом вопросе Вы затронули вещь, которая никогда не работала нормально.
    Рутование всегда было основано на эксплуатации уязвимостей.
    Атака никогда не шла из обычной программы. Это делалось все ниже (до нормальной загрузки устройства).
    Подделаное системное обновление (кастомная прошивка). Компроментированный ключ поддиписи редкость.
    Искали и ломали загрузчик (аналог биоса для ПК)
    Ответ написан
    Комментировать
  • Шифрование уникальной ссылки для пользователя. Как реализовать?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    X-Accel-Redirect - гуглим такую фишку у nginx

    Отправляем пользователя скачивать файл по ссылке с случайной строкой.
    Эту случайную строку сохранеям в базу (какой файл ей соответствует и до какого времени правильная).
    Например к текущему времени прибавляем 1 час.

    Файловый сервер (PHP + NGINX).
    Полученный ключ (через апи или напрямую в муську на первый сервер).
    Проверили время жизни. Узнали, что отдавать.
    Спихнули задачу на nginx (см первую строку ответа)
    Ответ написан
    Комментировать
  • Нужно ли код бота выкладывать в GitHub?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    выложить код в Git
    давайте уточним как Вы понимаете этот термин.

    Я это фразу понимаю как сделать исходный код доступным (публично) другим людям.
    Разберемся зачем так делают люди ?
    а) ищут работу и дает ссылку (чтобы работодатели могли оценить Вас как программиста)
    б) альтуристы - поклонники Open-Source (GPL)
    в) для удовлетворения ЧСВ (публикуют под лицензией требующего сохранения авторства. Апач2)
    г) двойное лицензирование (GPL2+коммерческая)
    д)жалко выкинуть
    е) еще на гитхабе есть куча реп, где люди просто пробывали что же такое гит
    ж) по ошибке сделали репу публичной

    А вот приватные репозитории люди используют просто потому, что так намного удобнее следить за версионностью кода и искать привнесенные ошибки между релизами.
    Ответ написан
    Комментировать
  • Как генерировать ссылку на оплату по СБП для ЮЛ?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Оплата по СБП идет поверх договора экваринга с банком.
    public class AgentFactory {
        static public InterfaceAPI getAgent(String agent) throws AgentNotFoundException {
            switch (agent){
                case "dump_debug":
                    return new DumpDebug(); // заглушка для локальной отладки
                case "gaz_prom":
                    return new GazProm();
                case "raiffeisen":
                    return new Raiffeisen();
                case "tinkoff":
                    return new Tinkoff();
                case "alfa":
                    return new AlfaBank();
                case "cft":
                    return new CFT();
                case "yoo_kassa":
                    return new YooKassa();
                case "pay_master":
                    return new PayMaster();
            }
            throw new AgentNotFoundException(agent);
        }
    }

    Вот кого шупал в живую
    Ответ написан