Задать вопрос
  • Зачем шифровать скрипты, например PHP с помощью ionCube 9?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    А если серьезно, то это у них вроде ускоряет загрузку скриптов. Что-то типа компиляции в байт-код.

    маркетинг шит 146%
    не может быть быстрее при как минимум еще одной обработке сверху в видел модуля для запуска закодированного кода. Ресурсов наоборот больше сожрёт, скорость в лучшем случае не упадёт.

    Объясните, зачем он? Когда применяется? Приведите реальный пример.

    когда продаешь самохостящийся продукт на php в котором есть проверка лицензии или просто супер гениальные алгоритмы которые не хочется раскрывать. Чаще конечно никаких гениальных вещей там нет и шифруют только ради проверки лицензии и отключения софта когда лицензия кончилась.

    Как правило все версии(кроме самых самых свежих) любого шифровальщика относительно легко раскрываются с помощью гугла/форумов DeZender'ов или даже онлайн сервисов.
    Вскрытие не всегда бесплатно естественно и не всегда прокатывает(точность не 100% при восстановлении, суть уловишь, но исходиники будут не рабочие).
    Суть вскрытия в удалении/обходе проверки лицензии.
    Т.к. особо там ничего не придумаешь, то проверка лицензии это зачастую просто запрос на сайт продавца из разряда
    $license_ok = file_get_contents("http://shopcms.com/check_license.php?domin=customer.com");
    if($license_ok) {
    //ok
    } else {
    die("Pay for license");
    }


    Поэтому обходится примерно так:
    Без изменения оригинального кода и работой с зашифрованынми исходниками(в случае если расшифровать не удалось до конца, но суть проверки лицензии понятна)
    1. Заворачиванием сайта продавца на локалхост с вечной лицензией. (прописать в hosts файл)
    2. Подменой глобальных переменных($_SERVER) чтобы проверялся домен на котором есть лицензия. (вставить в index.php или другое место где исходники открыты)

    Если исходники расшифровались правильно и работают
    3. Выпиливанием проверки лицензии из исходников.

    Лень искать, а точнее поиска нет по овтетам, но уже писал.
    Я считаю что шифрование никак не увеличит продажи или защитит от мамкиных хакеров.
    Кто очень хочет - он будет ломать, в случае неудачи просто не будет пользоваться.
    Кто адекватный - будет платить в любом случае за СЕРВИС/ОБСЛУЖИВАНИЕ. Т.е. получать обновления и поддержку разработчиков.

    ОЧЕНЬ много скриптов лежат взломанные или ходят по рукам массово, но я не видел чтобы разработка хоть сколько-то хорошего продукта после этого прекращалась или закрывалась по финансовым причинам.
    Даже думаю это положительно сказывается на продкуте и его клиентах какой никакой пиар.

    Возможно даже можно сравнить с борьбой с пиратами.
    Закрывают торренты, видео сайты, судятся из-за "упущенной прибыли".
    При этом продолжают снимать и прибыли только растут с годами.
    Никто так и не доказал что раздача кинца/игор на торренте равняется потери прибыли.
    И опять же даже наоборот помогает некоторым продуктам увиличивать аудиторию.

    PS. Забыл решение написать грамотное по моему мнению.

    1. Если у вас действительно супер-пупер секретный алгоритмы которые никто не знает или может повторить.
    Использовать исключительно модель SaaS или производить вычисления через ваш сервер(но продукт всё равно будет стоять на сервере клиентов).

    2. Если никаких алгоритмов взлома гугла/пентагона/игил/телеграма там нет.
    Просто отдавать открытые исходники для работы.

    3. Если вы пишите очень плохой код и вам стыдно или хороший код, но вы жадный.
    Используйте SaaS.
    Технологии позволяют привязать домен клиента к вам, создать ему отдельное рабочее пространство(виртуалку/сервер) и всё что только придумать можно.
    Ответ написан
    4 комментария
  • Как реализовать javascript на другом сайте?

    @imhuman
    Подключение своего скрипта возможно только через фразу админу сайта: "Поставь мой скрипт на свой сайт". А в скрипте, хоть кнопки рисуйте, хоть формы.
    Ответ написан
    Комментировать
  • Как вывести водяной знак с картинки с помощью скрипта?

    longclaps
    @longclaps
    Разумеется можно. Ведь водяные знаки затем и наносят, чтобы их можно было легко свести и выдать картинки за свои.
    Ответ написан
    Комментировать
  • Как мне получить нужное значение?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Результат однозначно восстановить не получится, так как 7 бит результата будет являться комбинацией (7 OR 8) битов входа.

    Скормите вашему коду 839 - тоже получите 455
    Ответ написан
    1 комментарий
  • Как отличить GET от POST запроса?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Веб-разработка
    Как отличить по данному контексту задачки GET от POST запроса?

    У POST-запроса есть тело. В данном случае это login=Dima&password=12345.

    У GET-запроса тела нет и все параметры передаются через URL. Но параметры в URL - не эксклюзив GET-запросов, так тоже вполне можно:
    POST /auth.php?foo=bar HTTP/1.0
    Host: www.site.ru
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 35
    login=Dima&password=12345

    И это будет POST-запрос.

    Имейте ввиду - такая формулировка не вполне соответствует спецификации, но проста для понимания и верна в 99.999% случаев на практике.

    GET больше 255 символов не содержит
    Это заблуждение. По спецификации ограничения по длине нет, фактически же в древних IE длина URL ограничивалась 2048 символами, в более современных браузерах можно ещё больше.
    Ответ написан
    4 комментария
  • Для каждой серьёзной игры существует свой редактор на подобии Unity3d?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Для больших игр неминуемо пишется свой инструментарий, потому что художникам надо быстро проверять, как смотрится арт в игре, геймдизайнерам править баланс, нарративщикам добавлять запятые в диалоги и так далее, а заставлять каждого компилять игру из C++-сорцов запрещено международной конвенцией по гуманному обращению с пленными и декларацией прав человека. Поэтому неизбежно будут какие-то тулзы, куда можно скормить png, mp3 или txt, подвигать ползунки и посмотреть, как это будет в игре.
    Иногда из этого выходит вот Unity3D или UE, иногда TES Construction Set, иногда оно так и остается в недрах.

    Disclaimer: я никогда не работал в геймдеве:)
    Ответ написан
    Комментировать
  • Куда пойти учиться в it для "корочки"?

    @seamen
    программист любитель
    Совет: закончить начатое. По жизни так правильнее. Опыт работы у тебя уже будет, можно попробовать будет и без специального образования обойтись.
    Ответ написан
    Комментировать
  • Почему быстро разряжается iPhone 7?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Уменьшить яркость (да-да, это так)
    Отключить анимации интерфейса (reduce motion)
    Отключить анимированные заставки (если установлены)
    Пересмотреть необходимость держать включенными bluetooth и прочее
    Пересмотреть какие фоновые сервисы что делают (геолокация, синхронизация данных и тд), что жрет трафик и ресурсы.
    ...
    И еще много мелких действий, которые надо делать один раз, еще в самом начале использования телефона, и по мере доустановки новых приложений. Возможно, какое-то приложение постоянно что-то мутит на фоне. Возможно, что-то пытается постоянно коннектиться (ищет устройства и тд), например bluetooth. Если у вас Mac и вы пользуетесь handoff - он тоже кушает, а если есть проблемы со стабильностью соединения, то может жрать заметно.

    Гуглите, информации много.

    Еще пройдите пару циклов полного заряда-разряда, иногда помогает. Магия, но все же.

    Если ничего не помогает - топать в сервис.
    Ответ написан
    4 комментария
  • Почему быстро разряжается iPhone 7?

    Driver86
    @Driver86
    Немодератор toster.ru
    > позвонить и всё
    Тогда лучше брать Nokia 3310 - он заряд дольше держит и, как приятный бонус - не так то просто разбивается.
    Ответ написан
    4 комментария
  • Почему бьёт током?

    Jump
    @Jump
    Системный администратор со стажем.
    Почему бьёт током?
    Никакого "битья" током нет. Есть ток - течение заряженных частиц.

    Вред наносимый током зависит от того насколько сильное течение, измеряется эта величина в Амперах.
    Чем больший ток пройдет тем сильнее вред.

    Сила тока проходящего через тело - зависит от напряжения и сопротивления тела.
    В описанной вами ситуации ток должен идти не только через тело но и через бетон.
    Поэтому тут нужно учитывать сопротивление бетона, сопротивление в местах стыков - наиболее плохой контакт и как следствие повышенное сопротивление как раз в местах стыков -ноги на бетоне, кусок бетона в руке.

    почему в первом случае бьёт током, если бетон не проводит электричество
    Бетон является диэлектриком - веществом очень плохо проводящим ток.
    Но это не значит что он не проводит ток - проводит, но не очень хорошо , хотя в некоторых ситуациях вполне достаточно.
    К тому же в разных ситуациях его электропроводность может меняться.

    Вот к примеру вода- отличный диэлектрик не хуже бетона.
    А как показывает практика зачастую она очень неплохо проводит ток :)
    Ответ написан
  • Try-catch-throw. Как понять эту схему?

    @nirvimel
    Вы называете одним словом "ошибка" несколько совершенно различных вещей, не связанных между собой:
    1. Синтаксическая ошибка в исходном коде. "где в тип string вводится int и сообщается об ошибке" - это невозможно в принципе, так как ваш исходный код, в котором нарушено соответствие типов, не является валидной программой (все равно что оставить незакрытую скобку), компилятор не сможет скомпилировать из него никакой бинарный исполнимый файл просто потому, что видит бессмыслицу в таком исходнике.
    2. Исключительная ситуация (exception) во время выполнения. Она всегда предусмотрена кодером (этим она и отличается). Например я пишу функцию, которая должна делить одно число на другое, я предполагаю, что кто-то (типа меня же) может использовать эту функцию неправильно и передать ноль в качестве делителя. Я хочу, чтобы такому пользователю прилетел (по голове) exception, красноречиво сообщающий о том, что так делать не стоит. Для этого я пишу
      if (denominator == 0) { throw std::invalid_argument( "НЕ НАДО ТАК!" ); }
      . Теперь, если мне нужно выполнить какой-то кусок кода, в котором есть вызовы функций, из которых могут вылетать исключения, и я хочу как-то локализовать эту проблему и обезопасить от этого остальную программу, то я пишу
      try { divide(x, 0); } catch (const std::invalid_argument& e) { /* Я все понял, я так больше не буду. */ }
      .
    3. Undefined behavior - это результат не предусмотренной никем ситуации во время выполнения. Например, я заб(ы/и)л на то, что кто-то может передать ноль в мою функцию в качестве делителя и пишу int divide(int a, int b) { return a / b; }. И однажды это происходит, кто-то (да я же сам) передает туда ноль и... Что должно произойти в этой ситуации? Я не знаю, CPU не знает, компилятор об этом не позаботился, ОС тоже не знает, но на всякий случай она прихлопнет весь процесс целиком и (возможно) напишет в консоль что-то типа segmentation fault.
      А что, если я буду вызывать такую подозрительную функцию из блока try-catch? - Да ничего это не меняет. try-catch ловит только преднамеренно брошенные исключения в ситуации, когда возможность возникновения ошибки была предусмотрена кодером. try-catch ничем не может помочь против undefined behavior потому, что предусматривать возможные ошибки во время выполнения - это задача кодера, а не компилятора, который занимается только контролем соответствия типов и формальной корректности программы.


    Если вам не по душе концепция undefined behavior, то переходите на Java или .NET, там компиляторы сами добавляют все необходимые (и обходимые) проверки ценой снижения быстродействия вашей программы.
    Ответ написан
    3 комментария
  • Можно ли использовать одну БД при написании сайта на PHP, а android-приложение на Java?

    @huwesu
    Использовать базу где?
    На Андроиде локально и на сайте? То есть фактически это будут 2 одинаковые базы?
    Или одна общая база в интернете, доступная всем Андроидам?

    Если про второй вариант, то правильнее делать не напрямую как finjoiler написал в своем примере.
    А через реализацию API на сайте.

    То есть к БД будет иметь доступ только PHP, а уже к PHP по API будет обращаться Android-приложение.
    Ответ написан
    Комментировать
  • Как сделать такой эффект с формой?

    Ankhena
    @Ankhena Куратор тега CSS
    Нежно люблю верстку
    Как-то так: jsfiddle.net/nwte4pej

    И, пожалуйста, приведите стили в порядок.
    Ответ написан
    2 комментария
  • Неотднократный взлом аккаунт instagram, как такое возможно?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Возможны следующие варианты:
    • инфицирован компьютер клиентки (наиболее вероятно)
    • имеется доступ к каналу пересылки конфиденциальных данных (например к почте)
    • плохой/простой/словарный пароль (вероятно)
    • инфицирован роутер/модем/камера (вероятно)
    • используется левый сервис для накрутки аккаунтов (вероятно)
    • клиент передает данные от аккуанта третьему лицу, от которого происходит утечка
    • заражено устройство у провайдера (маловероятно, и такое бывает)
    • инфицировано устройство (например троян на телефоне)
    • дыра у Инстаграма (маловероятно)
    Ответ написан
    1 комментарий
  • Как сформировать команду тестировщиков?

    platotel
    @platotel
    IT Product Manager
    Что касается подбора и мотивации команды, то недавно в своём видео-подкасте мы записывали интервью с моим другом, главой отдела тестирования, который поделился своими принципами построения команды. Как построить команду? Беседа с Head of QA [Интервью]. У Васи в отделе сейчас есть несколько людей, которые с ним работают много лет и не в одной компании. Такую лояльность просто так не получишь.

    Насчёт подводных камней - по моему опыту, они обычно не в организации и не в технических аспектах, а в том:
    1. Есть ли команда, насколько она готова идти к общим целям,
    2. Как спозиционироваться, чтобы деятельность была нужна рынку. Если знать боли целевой аудитории и предложить решение конкретных проблем, то шансы есть. А если просто делать то, что интересно, с надеждой на то, что просто будет сайт и будет реклама (а анализ аудитории и её потребностей не сделан, нет понимания, за что люди будут платить), не проведено исследование спроса (предложение минимального продукта, за который люди платят), то можно долго что-то делать без особого успеха. Это такой ресурсный подход получается. И, в отличие от рыночного, часто получается, что никто платить за твоё предложение не готов (людям не понятна/не нужна ценность). У меня в моих проектах/стартапах так бывало. :(

    Обычно всякие гуру стартапов советуют делать самый минимальный продукт (в вашем случае - описание услуг по тестированию с чётко прописанным Call to action - тем, что получит от вас человек/компания), разместить предложение там, где есть целевая аудитория (например, сделать предложение на Upwork), а потом посмотреть, готовы люди платить. Если готовы - тогда можно набирать команду и брать заказы. Иными словами, в большинстве книг по стартапам советуется сначала проверить спрос (собрать предзаказы), а если он есть, тогда уже под него набирать команду и огранизовывать её работу.

    Ещё можно поискать ваших конкурентов (другие компании, которые предлагают услуги по тестированию в качестве аутсорсинга) и посмотреть, где они представлены, как они ищут клиентов. Например, у них прокаченные профили в LinkedIn? Или на Upwork? Или много публикаций в СМИ/выступлений на профильных конференциях/экспертный контент в соцсетях (чтобы показать свою экспертность)? Или они ходят (судя по фоткам в соцсетях) на отраслевые мероприятия (автомобильной, медицинской и т. п. отрасли), чтобы там найти клиентов? Короче - когда вы поймёте, какие каналы коммуникации приносят им клиентов, вы можете попробовать использовать эти же каналы.
    Ответ написан
    2 комментария
  • Как делают Responsive сайты?

    iiiBird
    @iiiBird Куратор тега CSS
    Пока ты спишь - твой конкурент совершенствуется
    есть ли какие-нибудь туториалы, которые объясняли бы все эти способы на примере ?

    ага. вот все, что ты перечислил - отдельным запросом в гугле вводи и смотри
    Ответ написан
    3 комментария
  • В чем прикол такого хака?

    Sanasol
    @Sanasol
    нельзя просто так взять и загуглить ошибку
    Изврат какой-то, смысла никакого так именовать классы.

    Придумать проблему и героически пытаться её решить - примерно так это выглядит.
    Браузеры позволяют так именовать с 14 года примерно судя по гуглу.
    Слеш возможно для старых браузеров чтобы они правильно спарсили и не сломались стили.

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

    Вообще -- используется для переменных в CSS, но это скорее относится к самим стилям, а не названиям.
    Ответ написан
    2 комментария
  • Сопровождение проекта: продавать часы или результат?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Сопровождение проекта - это договор с регламентируемым списком работ и ограниченным количеством часов по каждому из этих типов работ и временем реакции на каждую задачу или сбой.
    Разработка/доработка любого нового функционала или исследование - это НЕ сопровождение и регламентируется отдельным договором подряда.
    The End.
    Ответ написан
    2 комментария
  • Как поступить с таблицей?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Здравствуйте!
    Здравствуйте!

    имеет ли смысл создать вторую таблицу, но только с теми данными которые будут часто доставаться
    В MySQL - да, в PostgreSQL возможно, я порекомендовал бы Вам использовать для этого наследование. НО! крайне важно понимать, что смысл таких операций есть только в тех случаях, если Вам действительно нужно увеличить производительность, то есть, производительности на данный момент, по какой-то причине не хватает (и никаким другом способом или в виду неких соображений, её увеличить нельзя) и Вам нужно её увеличить. В иных случаях, плодить лишние связи, крайне не рекомендуется. Не зависимо от того, MySQL это либо какая-то иная БД.

    *из личных наблюдений: чем меньше таблица в MySQL (в плане объёма на диске) - тем быстрее выборка, не зависимо от того, участвую ли "лишние" поля в этой выборке или нет.

    И если да, то лучше использовать MyISAM или InnoDB?
    Быстрее - MyISAM, надёжнее (+ там ещё транзакции всякие поддерживаются, и прочие плюшки) - InnoDB. Лучше - ?.

    как сделать запись в одну таблицу сразу же после выполнения записи в другую таблицу?
    Наверное, с помощью триггера или транзакции. Не понимаю суть Вашего вопроса.

    При этом нужно знать сохранить один и тот же айдишник у них.
    Для этого есть LAST_INSERT_ID().
    Ответ написан
    3 комментария