Задача была отследить содержимой iframe модуля оплаты
И утащить введённый в него номер банковской карты. Мы-то понимаем истинные цели, а дать пользователю ещё больше минут - всего лишь предлог, под которым можно замаскировать велосипед для кражи данных
Роман,
5. Сайт-донор замечает подозрительную нагрузку с подозрительного IP сервера с безголовым браузером, блочит к х_рам и вся этажерка из костылей разваливается))
Обычные клавиатуры редко позволяют нажать много клавиш одновременно. Какие именно комбинации клавиш можно нажать одновременно - зависит от развода дорожек внутри, на разных клавиатурах по-разному.
arruah, тогда использовать в связке с контролем версий CI. Во многих из них есть возможность загрузить полученные в результате сборки файлы по sftp. Тот же Capistrano, как ранее предложили
arruah, всё равно, если эти мелкие изменения однажды придётся откатить, например, что-то нечаянно сломаете в коде или в ассетах - будет крайне проблематично быстро откатить это всё к работоспособному состоянию и найти источник проблемы. В то время, как в системе контроля версий можно быстро перейти к состоянию в любой момент времени, а через бисекцию можно даже быстро найти из сотни коммитов, в каком именно месте сломали, не перебирая каждый коммит по-отдельности.
А ещё - если вам нужно поддерживать несколько веток (стабильную на сервере и находящуюся в процессе разработки, которая ещё сыра для продакшена) - то будет очень сложно без системы контроля версий одновременно их разрабатывать.
arruah, смотря что понимать под "каждым изменением", если для реализации какой-то фичи вы внесли изменения в пять файлов - то эти пять изменений правильнее и логичнее в один коммит загнать, не делая для каждого отдельного изменённого файла отдельный коммит. А если в одном файле поправили два бага (вызванных разными ошибками в коде и между собой не связанных) - то наоборот, делать два коммита, на каждый баг - по коммиту. Если ведёте разработку в одиночку - то можете делать так, как вам удобнее, в конечном итоге всё равно придёте к какой-нибудь удобной схеме.
Alex_87, потому что в функцию мы передаём значение элемента. А значение строчкой раннее присваиваем переменной val.
Можно писать if (func(arr[i])) и разницы никакой не будет, но так как это значение используется несколько раз в коде, автор решил вынести его в отдельную переменную.