• XSS.stack #1 – первый литературный журнал от юзеров форума

Вопрос - Ответ

Пожалуйста, обратите внимание, что пользователь заблокирован
Приветствую, други ) Не силен в коде, но нужен человек который хорошо разбирается в js и php, для помощи решение проблемы обхода капчи на фишинговом ресурсе. Если есть желание, отпишите в ЛС. Глянете и обсудим стоимость Вашего потраченного времени на решение конкретной задачи.
 
Всем привет, подскажите пожалуйста, я начал изучать яп javascript,и в дальнейшем хочу заниматься бэкендом, дак вот, node.js для новичка норм? Или лучше же сразу свичнуться на тот же python ?
 
Всем доброго времени суток!
У меня вопрос по PHP
Как сделать ручную проверку оплаты в тг боте?
То есть человек через бота принимает условия сделки, далее приходит уведомление ассистенту магазина. В свою очередь он должен подтвердить/опровергнуть факт платежа.
Был автоматический софт, но сейчас он не пашет, а искать ему замену не хочу.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Разобрался.
Разобрался - напиши ответ, мб кому-то еще поможет.
 
Всем доброго времени суток!
У меня вопрос по PHP
Как сделать ручную проверку оплаты в тг боте?
То есть человек через бота принимает условия сделки, далее приходит уведомление ассистенту магазина. В свою очередь он должен подтвердить/опровергнуть факт платежа.
Был автоматический софт, но сейчас он не пашет, а искать ему замену не хочу.
Webhooks
 
Разобрался - напиши ответ, мб кому-то еще поможет.
Код:
$id_row_query = 'SELECT COUNT(*) FROM `users`;';
$id_row_result = mysqli_query($mysql_connect, $id_row_query);
$id_row = mysqli_fetch_array($id_row_result);
$user_id = $id_row[0];
$id_u= $user_id + 1;

$user_login = $_POST['login'];
$user_pass = password_hash($_POST['pass'], PASSWORD_DEFAULT);
$user_email = $_POST['email'];

$reg_sql = "INSERT INTO `users` (`id`, `login`, `pass`, `email`) VALUES ('$id_u', '$user_login', '$user_pass', '$user_email');";
$result = mysqli_query($mysql_connect, $reg_sql);
 
Код:
$id_row_query = 'SELECT COUNT(*) FROM `users`;';
$id_row_result = mysqli_query($mysql_connect, $id_row_query);
$id_row = mysqli_fetch_array($id_row_result);
$user_id = $id_row[0];
$id_u= $user_id + 1;

$user_login = $_POST['login'];
$user_pass = password_hash($_POST['pass'], PASSWORD_DEFAULT);
$user_email = $_POST['email'];

$reg_sql = "INSERT INTO `users` (`id`, `login`, `pass`, `email`) VALUES ('$id_u', '$user_login', '$user_pass', '$user_email');";
$result = mysqli_query($mysql_connect, $reg_sql);
может просто колонке id задать атрибут auto_increment ?
+ использовать orm, чтобы избежать sqli
 
Вопрос по JavaScript - работал ли кто-нибудь с Media Source Extension API, а точнее с SourceBuffer? Как добавлять сегменты всё понятно, но как их удалять? SourceBuffer не может расти бесконечно, в разных браузерах разные лимиты на размер. Для удаления сегментов есть апи SourceBuffer.remove, но не очень понимаю когда именно их нужно удалять? Пробовал удалять по тайм-ауту, при получении нового сегмента с IDR/Key Frame - итог один - буферезированные сегменты удаляются, воспроизведение видео останавливается на времени последнего удалённого сегмента и не продолжается, хотя новые сегменты продолжают добавляться в буфер с помощью SourceBuffer.appendBuffer. Возможно стоит отлавливать исключение QuotaExceededError и тогда уже запускать очистку, но выглядит как костыль.

UPD: как оказалось, браузер сам умеет удалять ненужные сегменты, очистка происходит после получения нового IDR/Key Frame.
 
Последнее редактирование:
UPD: как оказалось, браузер сам умеет удалять ненужные сегменты, очистка происходит после получения нового IDR/Key Frame.
Я бы не полагался на встроенные механизмы браузера по очистке буфера. Это тоже самое будет как Рутюбом - идет видео, а потом в браузере заканчивается оперативка.
Стоит дальше копать в сторону метода remove (где указывают отрезок времени воспроизведения для удаления).

Возможно стоит отлавливать исключение QuotaExceededError и тогда уже запускать очистку, но выглядит как костыль.
Ловить исключения - это не костыль, а обязанность программиста :)
 
Я бы не полагался на встроенные механизмы браузера по очистке буфера. Это тоже самое будет как Рутюбом - идет видео, а потом в браузере заканчивается оперативка.
Стоит дальше копать в сторону метода remove (где указывают отрезок времени воспроизведения для удаления).
Нигде не смог найти чёткого ответа на вопрос по какому принципу работает очистка буфера, насколько я понял это implementation defined штука и у каждого вендора она реализована по своему. Глубже пока не копал, оставил как есть - погонял тесты пару часов, всё ок. Позже, думаю, ещё вернусь к этому.
Ловить исключения - это не костыль, а обязанность программиста
Костыль в том плане, что это исключение выскакивает при полном заполении буфера - (100-150 МБ - в зависимости от браузера), начинать очистку буфера дорого и долго, лучше улалять маленькими кусками.
 
Как можно создать похожую площадку похожую на эту https://ru.tradingview.com/chart/
Само собой без такого обширного кол-ва инструментария, но например с Индикаторами, так как для интеграции инжикаторов нужно подписывать договор с самим TradingView, но видел эту реализацию на других площадках у которых явно нет такого договора, подскажите как можно быстро сделать такой продукт. Хотя бы с частью этого функционала
P/S Если среди читающих есть кто может, напиши в ПМ пожалуйста)
 
Вопрос по JavaScript - работал ли кто-нибудь с Media Source Extension API, а точнее с SourceBuffer? Как добавлять сегменты всё понятно, но как их удалять? SourceBuffer не может расти бесконечно, в разных браузерах разные лимиты на размер. Для удаления сегментов есть апи SourceBuffer.remove, но не очень понимаю когда именно их нужно удалять? Пробовал удалять по тайм-ауту, при получении нового сегмента с IDR/Key Frame - итог один - буферезированные сегменты удаляются, воспроизведение видео останавливается на времени последнего удалённого сегмента и не продолжается, хотя новые сегменты продолжают добавляться в буфер с помощью SourceBuffer.appendBuffer. Возможно стоит отлавливать исключение QuotaExceededError и тогда уже запускать очистку, но выглядит как костыль.

UPD: как оказалось, браузер сам умеет удалять ненужные сегменты, очистка происходит после получения нового IDR/Key Frame.
не совсем, буффер надо чистить руками, у тебя пакеты с кадрами летят через веб сокет или http ?, но тут не очень важно
по таймауту плохая идея, потому что кадры динамические и можешь зацепить ключевой на стыке времени.
Для хрома работать должно:

Код:
let sourceBuffer: SourceBuffer;
let bufferArr = [];
let playerAction= false

// инициализация плеера и всего прочего не знаю как у тебя там, добавь еще в метод
sourceBuffer.addEventListener('updateend', onUpdateEnd);
sourceBuffer.mode = 'sequence';


 const onUpdateEnd = (): void => {
            playerAction = false;
            if (bufferArr.length > 0 && !playerAction) {
                bufferClearTimer = setTimeout(checkQueueLoop, 0);  // в checkQueueLoop идет аппенд буффера, bufferClearTimer хранит таймаут айди, при уничтожении плеера на странице убьешь его
            } else {
                clearbuffer();
            }
            return
        }


 const clearbuffer = (): void => {
            playerAction= false
            if (sourceBuffer.buffered.length > 0) {
                const maxLength = 60 // поиграйся с этим значением, если плееров много, лучше не копить на долго;
                const startAt = sourceBuffer.buffered.start(0);
                const endAt = sourceBuffer.buffered.end(sourceBuffer.buffered.length - 1);
                const length = endAt - startAt;
                if (length > maxLength && !sourceBuffer.updating) {
                    try {
                        sourceBuffer.remove(
                            startAt, endAt - maxLength / 2
                        );
                        playerAction= true;
                    } catch (e) {
                        console.log('ошибка при чистки буффера', e, new Date());
                    }
                }
            }
            return
        }

/** Убешь буффер, при закрытии страницы чтобы ничего не сохраняло */
const clearFullBuffer = (): void => {
            if (sourceBuffer.buffered.length) {
                const startAt = sourceBuffer.buffered.start(0);
                const endAt = sourceBuffer.buffered.end(sourceBuffer.buffered.length - 1);
                try {
                    sourceBuffer.remove(startAt, endAt);
                } catch(e) {
                    console.log('ошибка при удалении буффера', e);
                }
            }
            return
        }
 
Последнее редактирование:
подскажите чем это php закодировано ?

PHP:
<?php
#Iz3\\Ya0^8=ypZu^VAr7$oZitl?Ve

     //Fr:]pb'/hWT-
#;1 n"?7e%9J:t~hV"tXsW"7%t[W{q%/*}?gK@1H_@C&%5)~b(EGjzrEG,l"TTOmg|1$cjwmdN83F+,ih;"*/
//R[`9VC%{")Xfayyy0X`,@9>JM%C _+K.MWzSE,V0J5HR)e$B;
$i=1;parSE_str#+zB<}~)}Ea".Cl:MkB?,a3),2I(f68!wOAo
(/*nu^ZDU?lv\Y#X>g/l8 U;b,QQ*/"0="#W=b$JXgaP i*jI:AW*,,H$\:=CYeh`go'846*JspFORj\~{{iR"
. /*{Y9E2Ag(MtLfXDh\wJ3.J[dMGX~gt9l`U&[}iNyp=#wQo*/'%6'             /*;ADjB"2[M|qk?*p*.<,)*/./*Lx-r<FF1HnM~*/'1%'//bi/I|}$Nja[;g=Fsr\IHHI>}xyTdRF
.#GegI_cg8,I&[?YH>j.M
"72"/*-\-=.`\:J@/f0g~RX u**Yq*/.    //hVmkf&VDF.5MT)@LJ,J6gLM,{_xG+<5Pbr{fK#kR
'%5'/*Qb$ QOL+8L80-Ze7*ILr8vEr\3q'.%=*/.            //zwNo=v\>ZCID1vPj9mg>i++VXR}13D-A.4vQuD}S:ntap
"2%"    #+_CHe}z?%a1r]*MAN{sJx
./*;83g'm'ON~$}L~s>eq>TD>,+d.M*/"61"  //|3VgOU9bLJXDNv6^m#;x)z~\EWp:M6
./*7n# cpbD(`=5xgTO*2P(TgOQ<Q8,cVLiowrbTOey'w*/"%7"#J|(I~M+@TGjE@*ucw\/QkdCQ3*_I3"}*k[q+]Dbo3Y
./*VL]v}>px'\0l5sqGkx'As#RB9i\hD&8^Y`cxR!DwMo4\P*/"9%"#Zi?p!)!BkNf;#Yl8N zs\^Cd
.    /*xqm$L-ZGZ( 'me:CQ:8WOyK""@9x#h:vY]iUQ@a^@B*/"5f"//7,I+?a[X&d}asv9h'Jy*^Kfb&96$cN<#)NOMle<tRXi@>j
./*eePivw_%P+_yO!>KF:>s$*9Ma\A*/'%6'/*gPdjT.Iifbz-8~Ppa;dQB@&L#r-JEb$xMPrV.&7tqlE*/.#8c/cQY{BKRD)75.tTgByMN\U&xD ow#\Ii2/;}\
'd%'    /*tIEIWqq7G 3E\;8<-,bZK&8>b%J-sl2WHGy7(_) D LpV`64Jc*/.#.[k?DJn1+S=q%@5/i6SWC)@[p
"61"//*KFE5ix|CzX;*C^nR(sjgvlJa^0$rU]s"0qRFxHdvb{&2\]
.//!E U]E5)ZjdV[]#?^d
'%7'//;m[K6,FSimOr;8,Dh!
.#XP=>hZ-w,x*(TVxp9,[\yh1c6@Ef]is-#Mm<Scw"z* zonyy_
"0&"/*/ oh0W~yI1p`0P>ZuKzKw2s{V\f'w/WBBm(=3`ug)0'By*/./*vrna}s})3<D^4KL7OW1M[OURi>iLZZ\_U0).SdkK_U*/'1='#Rb\lUeKzBz,8Q|\.g(%~.+V~yv~jUmtid3[!H_cf~&
.#%<c5J9T]P+%]A>6K"A#058Hf9OD
'%7'#,VS3ev ;c;\n0$Vq^DuqA1qPM)Dd`:
./*:~KUnc1MWmGfLSc^A;/^@Xeu#.-d*/'3%'//L]~!Y"}0+tjW;\iZ>lWue"{')m@@^Qq9((Ywk[iZj`vrteVAn
. //6|,Y*egeY\7-=7 O$I:sR4<s7Y/lf\^W.
'74' /*d+!1Buq[__HK12m(.0d:K8K8>*/.  //D.Tb5UMh("5In
'%5'//p!g8[V(Ensab{)|]*L9@n6Igkt|.CHvIZO
./**BA0*3`.i5S>5D(5h+]hqCbYd}w7^$cZ/*/'2%'    /*mI9\>0a.E>\iTaq<=NR*/./*g)Aj\5Br|QV"8R*/'52'//Fxp1OL<g'sXzjJR-!
./*B^#%^o75,/9*/"%6"/* $ri^U=yK;{Z9a+$4buO"i^vd9R$=*/.    /*h!=Ld$)*n$f%oq.EiZ:DRn[u7nS0NL%W1[}IK1&i>YMmE@>3;m#*/"5%"# p;2-6Xd>CmnpJuSA
.//zv>Mu[VHbgIAIUYY d+-7zr c2Xa,-D1|
'76'/*F\>m7*2q%)Y@*Osg1;epgRMxn+^3*/.#2PXq*bH6CB4s-#Cu@[{>D?.8gp;
"&2"/*q!YA ?"c`5ar{d\htmSQXCqDS#)GS\J]"eD*/.//qNOmc1HLgsbw
"=%" //s:`SfF\<=PoGEo]&CS6?S0vWuab~@GRxd>PR<rjD"A2E_]J`
. /*D?+|!?Zw%i<V\ufB]/J(_ uKi\]'iP)14}] &:|;E|/"w7~*/'47'     //g#4Yk`c{*fq4d%VQ,.|d.F{wN6])'`F\Wn^p6{8`[ps
./*,_pb-R$|j(Xz!IU-v)MmL6D$!byB0x*/"%7"/*k'Oh>f_E@!?}1o2e9EhyEP#,(L]wEk9V1CW.2D} C+7`1<bj*/./*Q"a>%PVr0J_cli*/"A%"/*\+((+u&\ :=X*/./*d[i:Pz?qwYt/E~I)N*/'69'/*!j5?J|o- Zn/m5^~*^;_[+:Mypq0\{)[w{#*/.//):E//gC)lD(BbciWumTV_O
"%6"     #B6B~XXarz4R:,.%JZs>Tn#RHB<"mvSgiI:NG\BrdU>t7d
./*pciH\J-5:{q*/"E%"/*N^}OX`#)$RS;QZ^G9Y@R)r=X/K_t*/.//'d8bQsdGztrS.]G:1N_'JdYs1; ov8IK<shVuNpshdY
'46'     #K,-UE^#:z?'tvsts)6[*2lhtnMXQ\y2eD7.D>%Gh7n1
.//B@a2k79=+#?w
"%4"#BV?* Eikff~,L~TicO
./*Ix-aSQFVjW)UC[EYuNMx\/d:?yRU'9k$*/'c%'#B^mcZv*jrN|*lG0I}b5~U3,:T_e-z^5Nl\/M|A_
.#A:9mlyhCFy~E,SfG
 
подскажите чем это php закодировано ?
Не подскажу, к сожалению чем. Кстати, код неполный. Вот что в нем:
PHP:
<?php

$i=1;
parSE_str("0=". '%6' .'1%'."72". '%5'. "2%" ."61" ."%7"."9%". "5f".'%6'.'d%' ."61".'%7'.'3%'. '74' . '%5'.'2%' .'52'."%6". "5%".'76'."&2"."=%" . '47' ."%7"."A%".'69');
 
Не подскажу, к сожалению чем. Кстати, код неполный. Вот что в нем:
PHP:
<?php

$i=1;
parSE_str("0=". '%6' .'1%'."72". '%5'. "2%" ."61" ."%7"."9%". "5f".'%6'.'d%' ."61".'%7'.'3%'. '74' . '%5'.'2%' .'52'."%6". "5%".'76'."&2"."=%" . '47' ."%7"."A%".'69');
да, этот неполный, полный прикрепляю
 

Вложения

  • info.zip
    72.4 КБ · Просмотры: 11

Вложения

  • info.deobfuscated.php.zip
    61.9 КБ · Просмотры: 10
Пожалуйста, обратите внимание, что пользователь заблокирован
Есть проблема в Hookbot, что не работают Авто-Команды, говорили проблема в backend-сервере PHP

PHP:
#AutoCommand

<?php

namespace App\Models;

use Eloquent;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Carbon;

/**
 * App\Models\AutoCommand
 *
 * @property int $id
 * @property array|null $data
 * @property Carbon|null $created_at
 * @property Carbon|null $updated_at
 * @method static Builder|AutoCommand newModelQuery()
 * @method static Builder|AutoCommand newQuery()
 * @method static Builder|AutoCommand query()
 * @method static Builder|AutoCommand whereCreatedAt($value)
 * @method static Builder|AutoCommand whereData($value)
 * @method static Builder|AutoCommand whereId($value)
 * @method static Builder|AutoCommand whereUpdatedAt($value)
 * @mixin Eloquent
 */
class AutoCommand extends Model
{
    protected $casts = [
        "data" => "json",
    ];

    protected $fillable = [
        "data",
    ];
}
 
Приветствую, пишу сниффер для шопа на JS, еще новичек в этом деле, на несколько сайтов уже сделал, но с одним возникла проблема с которой не могу уже какой день разобраться. Мой код состоит из того что я скрываю элемент формы оплаты на сайте с помощью JS скрипта, а потом закидываю свою html форму, но на одном сайте при загрузке моего кода возникает ряд ошибок которые не дают поставить мой код, одна из таких это "Uncaught SyntaxError: Identifier '123' has already been declared". Но эта ошибка появляется только тогда когда я загружаю мой код на сайт, а не просто вкидываю его в консоль, из чего могу сделать предположение что страница просто не успевает прогрузиться прежде чем мой код начнет работу. Я пробовал ставить в начало моего кода "window.onload =" и "document.addEventListener("DOMContentLoaded", function() {", но ничего из этого не работает(хотя на одном сайте я сталкивался с такой же проблемой и решил её как раз таки DOMContentLoaded).
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх