• Какая нейросеть умеет в веб-дизайн?

    @rPman
    Адекватных и универсальных мультимодальных ИИ (с модальностью - изображения) на текущий момент не существует.

    С очень большой натяжкой можно считать топовые openai/claude/google/(может китайский qwen но они совсем внизу), с поддержкой изображений подходящими, в интернете даже гуглятся тестовые helloworld, но проблема в том что когда доходишь до реального использования, сил на то чтобы объяснить ИИ что тебе нужно и исправлять его ошибки уходит БОЛЬШЕ чем если бы ты делал это сам.

    ИИ на текущий момент подходит как удобный помощник, делать что-либо что ты сам умеешь прекрасно делать, понимаешь как это понимает ИИ (мы в голове строим модель знаний нашего собеседника, чтобы не скатываться в объяснения алфавита, так вот то же самое и с ИИ, мы должны понимать что они понимают и до какой степени) и используешь его для ускорения./. плюс как замена поисковика (только не по всему интернету, а в пределах его знаний, очень мало какие продукты дают адекватный поиск в интернете).
    Ответ написан
    Комментировать
  • Как правильно использовать python скрипт через PHP backend?

    @rPman
    В общем случае технологии называются Interprocess communication.

    Изначально предлагались (php/python) механизмы очереди сообщений, shared memory и semaphores, как минимум на их основе делают высокоуровневые библиотеки по работе с сообщениями (и используют именно их, а не низкоуровневые, но знать про них обязан каждый, чтобы понимать недостатки)

    Второе и самое логичное, использовать socket-ы, как unix socket или pipes, так и tcp. Многие не заморачиваются, а поднимают полноценный асинхронный http сервер и организуют общение между приложениями по http или лучше websocket протоколу, так как это позволяет распределить приложения уже не в пределах одного сервера, а в сети, что дает очень высокую гибкость, но ценой значительных накладных расходов на сериализацию.

    Правда если используются разные языки программирования, в которых разные форматы для структур данных, так же придется сериализовать структуры, т.е. память копировать и кодировать/декодировать.
    Ответ написан
    2 комментария
  • Как подключаться без подтверждения и управлять Android Tv удалённо?

    @rPman
    2. Телевизор должен принимать подключение находясь в режиме "Кабельное ТВ" и переключаться в оболочку Android TV.
    боюсь это условие исключает решение только средствами самого телевизора, так как эти разные режимы обычно реализуют на аппаратном уровне, т.е. пока работает кабельное ТВ, android тупо не запущен или спит.

    И кстати подключиться к телевизору с компьютера так скорее всего не получится, но, теоретически можно реализовать симуляцию пульта управления (блютус/инфракрасный пульт) с помощью любого android устройства (ИК-порт на китайских смартах до сих пор есть у всех), но придется реверсить протоколы и писать приложение (само то приложение простое, но вот разобраться, какой сигнал слать чтобы сменить режим у телевизора ...)

    p.s. как дешевая альтернатива, покупаешь совместимый пульт, разбираешь, 'нажимаешь кнопку' любым самым дешевым компьютером (например на базе платы от роутера или платы сетевой веб камеры, а если есть управление заслонкой ИК фильтра, то этот соленоид можно буквально на кнопку направить, т.е. даже паять ничего не придется и прошивки менять тоже, так как управление шторкой из веб интерфейса камеры) и закрепляешь его механически так чтобы он всегда 'смотрел' на телевизор. Решение слишком колхозное но максимально простое для реализации и очень дешевое.
    Ответ написан
  • Что лучше, множество запросов на вставку в одной транзакции или один запрос на вставку всех значений?

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

    В общем первый вариант идеален, если контроль за целостностью данных отключен или точно известно, что данные не противоречивы. Тут и скорость и синтаксическая простота, и меньше места sql занимает.

    Иначе, лучше второй вариант.
    Ответ написан
    Комментировать
  • Компьютер с какими характеристика требуется для комфортного использования llama3.1:405b?

    @rPman
    Нужны видеокарты, суммарным объемом 1024гб. тут только специализированные, найти в продаже в странах под санкциями нереал, рынок пустой был уже в 2020-ом. Цены тут 5х от мировых.

    Квантизация тут тоже есть, vllm самая эффективная реализация, поэтому если тебе не нужно дообучать, а только исполнение, то пойдет 8bit квантизация.
    -------

    На процессоре с помощью llama.cpp, где-нибудь 10-20 секунд на токен (кстати повышается в несколько раз при batch запросах, когда тебе нужно обработать сразу много prompt-ов).

    Тебе нужна серверная материнка (хоть прошлого поколения, важна оперативная память), размер памяти минимум 256гб (4битная квантизация, потеряешь в качестве), лучше 512гб. К сожалению рынок тут только БУ со всеми вытекающими от сюда ценами и гарантиями.
    --------

    Можно запускать на нескольких десктопах!
    Год назад в llama.cpp портировали MPI реализацию, поддержка запуска на нескольких нодах (как пример нам было 8 raspberrypi и llama65b) поэтому приобрести 4 компьютера по 64-128гб не проблема, процессор не самый топовый, какой-нибудь AMD Ryzen 5 9600X/7600X (6-ядерный, лучшая производительность singlethread дешевле $300/$200), на сколько я понял, упирается все в сеть, поэтому сверху 10Gb ethernet адаптеры в придачу (они относительно дешевые).

    Каждый из компьютеров обойдется примерно в 100т.р. (можно ужаться и набрать по 70т.р. но там и процессоры по слабее и память по медленнее, но не значительно), и таких нужно 3-4 штуки.

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

    Есть еще один экстремальный вариант, он не требует почти никаких особых затрат, любая даже самая слабая железка с любым количеством RAM (пусть условно 16гб-32гб будет, контекст хранить нужно) но с максимально быстрым ssd nvme диском (или несколькими в raid0). llama.cpp штатно умеет работать с моделями напрямую с диска (mlock режим), будет считывать всю модель по одному разу на каждый токен.

    Например 4 ssd диска (проходной apaser за 2.5т.р. но лучше что то по быстрее с pci-e 4.0) на скорости 2гбайта/с (само собой есть быстрее) с соответствующими pci-e контроллерами обойдутся в считанные 16-25т.р., полученный 'монстр' будет считывать всю модель с 8битной квантизацией за 30-15 секунд, и уже вопрос, успеет ли процессор на такой скорости модель считать.

    p.s. осторожно, ssd на 'чтение' тоже не бесплатно работает, это тоже изнашивает ресурс, только не так быстро как запись, может в тысячу раз медленнее, может в десятки тысяч.
    Ответ написан
    6 комментариев
  • Как загрузить файл через API в диалог Claude?

    @rPman
    превышается максимальное количество токенов

    Никак, придется делать что то с файлом, что бы он влез в контексте окно.

    Человек точно так же не сможет переварить за один раз большой объем информации, llm-ки тут наследовали эту ограниченность и невнимательность.

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

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

    Тупой пример - у вас есть исходники приложения, которые нужно проанализировать, суммарный объем значительно превышает контекстное окно. Вы разбиваете из на методы/классы/исходные файла (выбор степени и способа разбиения отдельная не простая задача) затем по каждому куску проводите анализ отдельным запросом, который самморизует информацию в нем (например попроси описать хелп по методу, короткое описание что метод делает и какие входные параметры) и объединив их в один файл, чтобы он влез в окно контекста, уже задавал вопросы.

    Метод/класс/файл это не 'или', собирать информацию нужно параллельно на всех уровнях.

    Можно итеративно задавать ИИ вопросы, добавив, информацию о каком методе/классе/файле необходимо для ответа на вопрос, замена этот уменьшенный кусок на исходный файл. Речь не идёт о непрерывном чате, внутри каждый запрос это полное окно контекста и лучше самому выбрать, что именно в него должно попасть, т.е. каждый раз формируется новый запрос .. но так как облачные ИИ стали добавлять управление кешем, можно создать несколько сессий, одни собирают информацию по частям, задавая разные вопросы к одному и тому же стартовому контексту, другие работают с агрегированной информацией, третьим с человеком...
    Ответ написан
    2 комментария
  • Как предсказать отработку сетапа на бирже?

    @rPman
    Есть два глобальных подхода к автоматизации решения задач:
    1. если задачу может решить человек, то задача формализуется, эмпирически (т.е. сам человек, своими размышлениями и экспериментами) формулируются правила, чаще всего переводом в математику, затем они программируются на языках программирования
    2. берут какую то универсальную формулу, которая (в теории может описывать любой) описывает требуемую задачу, и каким-либо алгоритмом подбираются ее параметры. Есть кстати алгоритмы, которые перебирают не только параметры но и саму логику формулы.
    Одна из самых известных математических формул, которая может описать любой процесс в реальности (с некоторым приближением естественно) - это нейронные сети (есть даже универсальная теорема аппроксимации, показывающая крутость многослойного перцептрона).

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

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

    Поэтому подумай, а как человек классифицирует данные? в каком виде он на них смотрит? в виде графика на котором он рисует линии? вот и представь данные как такой график (нормализуй не от min/max датасета, а текущего фрейма, то что идет на вход нейросети, если что этот подход ничего не гарантирует но как минимум сеть будет видеть то же что и человек).

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

    Типичный 'аналитик' начинает рисовать на графиках какие то кривые, обычно по какому то не сложному алгоритму, вот и автоматизируй этот процесс не ИИ алгоритмами, и добавь результат в обучающую выборку, возможно это поможет?

    p.s. повторюсь, знание выстраданое многими - бесконечно долго на спекулятивном рынке зарабатывают только обслуга (лопаты продавать эффективнее чем добывать золото), и все места уже заняты и 'охраняются' законодательно (сами биржи и держатели эмиссии, т.е. банки для валют и эмитиенты для ценных бумаг). Все остальные это корм, который кормят крошками чтобы привлечь побольше капитала и забрать все.

    И даже если закрыть глаза на манипуляции (в криптовалютах одно время было так что они были слабы) и рассматривать рынок как честный, каждый трейдер торгует против всех остальных, какую бы ты стратегию ты не разработал, долго она не проработает, потому что все изменится и придется разрабатывать эту стратегию заново уже под новые реалии... но данных то на эти реалии у тебя еще нет?!

    p.p.s. на спекулятивном рынке можно зарабатывать на постоянной, это тяжелый труд, высокое психо-эмоциональное давление, огромные риски... и речь идет о считанных десятках процентов годовых.
    Ответ написан
    1 комментарий
  • Использовать нейросеть для обучения на своих данных. Какую сетку лучше выбрать и где это сделать в облаке или на компе?

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

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

    Использовать transformer возможно очень правильно (attention по уму для временных рядов подходит), но точно готовых решений не найти и придется с нуля решать все самому. Один токенизатор чего стоит.

    p.s. данные - это главное, не только количество но и их уникальность (разный тип данных а не только их объем). На рынке спекулятивной торговли все не могут победить, и действует очень сильная конкуренция, если решение простое то его уже нашли и эксплуатируют, а значит твое решение должно быть лучше... теперь этот принцип продли во времени и дай участниками огромные ресурсы... каждый новый участник станет кормом для остальных
    Ответ написан
  • Как отключить ядра процессора AMD Epyc 7352 в BIOS?

    @rPman
    Судя по скрину биос такого функционала не предоставляет, но можно ограничить количество ядер процессора с помощью опций загрузчика ОС
    * linux grub
    в файле /etc/default/grub к опциям ядра добавить что-нибудь про threads, smp или cpus:
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash isolcpus=1,2"

    * в windows
    утилита msconfig в закладке boot - advanced - Number of processors...

    вообще то там много чего можно накрутить, вопрос больше ЗАЧЕМ?
    Ответ написан
  • Как пололучить int8 из байта?

    @rPman
    пакет struct метод unpack
    data=b'\xc8'
    struct.unpack('b', data)[0]

    data типа bytes, можно считывать из файла, открывая как бинарный файл, флаги 'rb'
    Ответ написан
    1 комментарий
  • Как произвести полное форматирование на Windows XP?

    @rPman
    Совет, для hdd, если на диске нет аппаратного шифрования, не надейся на нули, я читал что после них можно восстановить информацию, по остаточному магнитному полю (правда речь шла по старые диски до терабайтового размера, кажется плотность записи важна), а поэтому нужно записать случайный мусор, например
    dd if=/dev/urandom of=/dev/sda bs=1024k
    выполнив эту команду из linux загрузившись с livecd
    Ответ написан
    5 комментариев
  • Есть ли ощутимая разница между SSD m.2 Pci-3.0 от Pci-4.0?

    @rPman
    В слоте pci-e 4.0 этот ssd будет работать в режиме 3.0, т.е. не будет никакой разницы.

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

    НО! обыватель скорее всего в обычных задачах не заметит никакой разницы от понижения скорости чтения nvme ssd в 2-4 раза, кроме совсем уж простых типа копирование файлов, либо эта разница будет не существенная. Современные ssd давно не являются узким местом в компьютере (за исключением ситуаций, требующих большой объем записываемых данных или уж очень высокие iops, но это повторяю, не типичные задачи)
    Ответ написан
    Комментировать
  • Как включить автоматическое обновление антивируса Microsoft Defender при отключенных обновлениях Windows 11?

    @rPman
    Скриптом на powershell получаешь список не установленных обновлений, фильтруешь по имени и отправляешь на установку.
    chatgpt, не проверял, но идея верная
    $Session = New-Object -ComObject Microsoft.Update.Session
    $Searcher = $Session.CreateUpdateSearcher()
    $SearchResult = $Searcher.Search("IsInstalled=0")
    $DefenderUpdates = $SearchResult.Updates | Where-Object { $_.Title -like "*Windows Defender*" }
    $DefenderUpdates | Select-Object -Property Title, UpdateID

    $Downloader = $Session.CreateUpdateDownloader()
    $Downloader.Updates = New-Object -ComObject Microsoft.Update.UpdateColl
    
    foreach ($Update in $DefenderUpdates) {
        $Downloader.Updates.Add($Update)
    }
    
    $Downloader.Download()
    
    $Installer = $Session.CreateUpdateInstaller()
    $Installer.Updates = $Downloader.Updates
    $InstallationResult = $Installer.Install()
    
    # Вывод результатов установки
    foreach ($Update in $Installer.Updates) {
        Write-Output "Title: $($Update.Title)"
        Write-Output "Result: $($InstallationResult.GetUpdateResult($Installer.Updates.IndexOf($Update)).ResultCode)"
    }
    Ответ написан
    Комментировать
  • Windows 10 под intel и amd на внешнем носителе?

    @rPman
    Таскай две установки, одну настроенную для intel, другую для amd, а каталог с профилем пользователя сделай общим с помощью символических ссылок либо настройками в реестре.

    Приложения придется устанавливать на обоих системах, мало того, можно сделать одну установку, настроить все необходимое а затем склонировать ее и настроить под другое железо.

    Сделать все можно на двух разных разделах одного диска, выбор ОС будешь делать с помощью штатного меню загрузки bcedit (в win10 его запрятали но погугли инструкции)

    p.s. как у тебя удалось установить windows на внешнем носителе? какой у тебя носитель и какой контроллер?
    Ответ написан
  • Как заблокировать сайты на Linux?

    @rPman
    Судя по вопросам ты не чужд программированию, попробуй выбрать любую среду разработки, выбрать GUI фреймворк и написать этот примитивный функционал самостоятельно.
    spoiler
    Исключительно для смеха, недавно увидел что с ubuntu в репозитариях идет мощная среда разработки приложений с WYSIWYG редактором GUI, базами данных и кучей всего... но на похожем на basic языке - gambas3

    Блокировка - например это внести домены блокируемых сайтов в /etc/hosts (он текстовый), указав для них неверный ip адрес (например 127.0.0.1), соответственно разблокировка - это удаление этих записей.

    Правда браузеры с прокси это проигнорируют, да и при смене hosts скорее всего потребуется их перезапуск.
    Чтобы от этого 'защититься', нужно уже расширение к браузеру писать, но... от самого себя не убежишь, ведь можно запустить браузер с новым профилем...
    Ответ написан
  • Сhrome выходит из аккаунта при закрытии?

    @rPman
    Браузер не может 'выйти из учетных записей на сайтах', потому что это функция самого сайта, каждый ее реализует по своему, но в 99% случаев для этого используются cookies, маленькие файлы, которые веб-сайты сохраняют у пользователя на машине и через них определяют авторизацию.

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

    В браузерах существует специальный режим - private (открываешь приватное окно) в котором cookies и не только существуют до закрытия окна, удаляются все следы посещения с машины, история, кеш и т.п. Так же есть настройка в самом браузере (точнее была раньше, я давно не следил за гуглхромом) которая позволяла настроить время хранения куки.
    Ответ написан
    Комментировать
  • Безопасно ли вводить пароли на сайтах при использовании VPN на арендованном VPS/VDS?

    @rPman
    https защищает.. но, большинство атак - это атака не на софт или железо, а на человека перед экраном, на простой фишинг попадаются даже опытные (много ли людей ВСЕГДА смотрят на строку адреса?).. да у провайдера vpn мало способов обмануть тут пользователя, но они есть.

    Напоминаю, что при установке софта от vpn сервера существует возможность (не факт что ее эксплуатируют но техническая возможность есть) установить на машине (только на нее но не на машины в сети!) корневые сертификаты, которые позволят серверу совершить атаку man-in-the-middle на https протокол и получать к нему доступ не только для чтения но и его модификации... браузеры с этим тоже как то борятся, но и браузер можно подменить или сломать...

    p.s. все еще существует софт, в т.ч. периодически слышу про такие проблемы у вендорского предустановленного софта у ноутбуков, которые так или иначе не заботятся о надежности и к примеру не проверяют https/http ссылки (условный ключ -k у curl который заставляет игнорировать подмену сертификата у скачиваемого ресурса) а значит провайдер может атаковать этот уязвимый софт, установить на машину пользователя вредоносный троян и уже с его помощью творить свои черные дела
    Ответ написан
    4 комментария
  • Возможно ли написать свой chatGPT и как?

    @rPman
    Для начала, llm-ки, начинают показывать свойства ИИ (т.е. начинают строить внутри себя модель, которая уже начинает себя как то вести а не просто синтаксически и даже логически обоснованный бредогенератор, т.е. хуже gpt35 если что) - это 10^26 flops вычислений, оценка приблизительная, когда читал про исследования на каких величинах это начинается, погрешность была на пару порядков. Мало того, десктопное железо тут не подходит, там требуется огроменное количество оперативной памяти GPU (про CPU даже не заикайся, на нем даже просто запуск - садомазохизм).

    Посчитаю за тебя - одна современная видеокарта 4090 дает 80Тфлопс (даже пусть 100 но так неверно, потому что реалии на пару порядков хуже но проигнорируем это) это 10^14 операций в секунду, т.е. только чтобы однократно обучить одну llm (а это обычно делают много раз, меняя гиперпараметры и обучающие данные) тебе потребуется 10^(26-14) секунд или 10^12 секунд или 31709 лет на одной видеокарте... приобретая чуть больше видеокарт, процесс можно ускорить почти линейно (да там начинаются проблемы уже на тысячах gpu, но они решаются спец-железом, спец-алгоритмами и спец-специалистами, и главное первое и последнее с рынка как коровой слизали крупные компании)... к сожалению эта наиважнейшая и самая крутая технология нашего времени требует минимально для старта десятки миллионов баксов вложений а лучше сотни.

    Но если все же хочешь взять готовое, разобраться и предоставить это как ваша работа то пожалуйста, гугл: gpt llm training from scratch detailed guide
    первая же ссылка - https://youssefh.substack.com/p/training-gpt-2-fro...
    Ответ написан
    2 комментария
  • Как из локальной версии Оперы сделать портативную?

    @rPman
    С помощью утилиты Майкрософт sysintetnails, regmon/filemon/... Нужно сохранить логи изменения реестра и файловой системы, которые происходят при установке opera на чистую систему (в идеале на только что установлено windows, например в виртуалке установить) но с установленными обновлениями и системным зависимостями, типа vcredist и другими (возможно процесс установки потребуется повторять, чтобы исключить из него эти компоненты, поэтому рекомендуется виртуальные машина с поддержкой снапшотов, позволяющие откатить состояние на начальное в одно мгновение).

    Рекомендуется устанавливать в каталог не по умолчанию, так как в очень редких случаях эти пути нигде не прописывают, если это что то типа program files.

    По логам видно какие именно файлы и куда были установлены а также какие ветки реестра.

    Затем, поиском по содержимому этих файлов и реестру ищем места, где прописан путь к установке и из абсолютного (типа c:\tools\myprog), меняем его на относительный например \tools\myprog или точка . (нужно понимать что некоторые программы могут неправильно работать при таком указании, им нужен абсолютный путь).

    Реестр можно сохранить в виде reg файла, а исправленные файлы и есть портативная версия.
    Ответ написан
    Комментировать
  • Как вставить вкладку на сайт?

    @rPman
    Такой запрет сделан, чтобы защитить пользователей от атаки click jacking, когда атакуемый сайт открывается в прозрачном iframe с авторизацией пользователя, и этого пользователя как то вынуждают кликнуть в определенное место на экране (например рисуют кнопку в этом месте), перемещая iframe таким образом, чтобы пользователь нажимал на какие то определенные кнопки на атакуемом сайте.

    Формально - можно, создав ее копию на своем домене (гуглить например nginx proxy) и подправив на лету скрипты в том месте, где целевой сайт проверяет работу в iframe

    Но! таким образом, естественно, нельзя получить cookies пользователей на этом сайте, потому что домен будет другой и у пользователя на нем будут уже свои куки. А еще атакуемый сайт может понять по статистике, что трафик разных пользователей к нему идет с какого то сервера и это не обычный прокси или vpn... а еще реверсинженеринг чужого кода для того чтобы отвязать его от оригинального домена может оказаться не простым.

    p.s. подмена домена сайта - это тоже свой вид атаки phishing, когда пользователя заманивают на сайт, с привычным внешним видом и отлавливают его попытки ввода в нем пароля, от него тоже могут в коде вставлять соответствующую логику, но как и запрет запуска в iframe ее можно удалить.
    Ответ написан