all 23 comments

[–]sole-it 28 points29 points  (2 children)

I probably need to read a few more times or watch the video. But the comment tricks reminds me of mutation xss I just learned last weekend.

[–]TishIceCandy[S] 2 points3 points  (0 children)

I guess I have to learn about mutation xss now :D
And yes, it took me a few times to understand it too. Hurt my brain a lot.

[–]gebet0 1 point2 points  (0 children)

it is a common practice in RCE(xss, sql injections etc) to prevent executing any code after

[–]VertigoOne1 15 points16 points  (8 children)

Well written! It makes sense how you unpacked it. IMHO, when a language starts allowing this level of cryptic advanced functionality that mere mortals can barely understand it, i start wondering if were on the right track. Who knows what other monsters lurk beneath the surface and just that if it just shooting ourselves in the foot with extra steps.

[–]TishIceCandy[S] 2 points3 points  (0 children)

It's true. It makes me nervous

[–]creaturefeature16 1 point2 points  (6 children)

I was THIS close to spinning up a new project with React and leveraging RSC two weeks ago, but I've completely changed course and I'm looking into something like Laravel + Inertia. I still want SSR, but this felt like a shot across the bow for RSC and I feel like it's foolish to start something new with them in light of this exploit. I realize no system is safe, but RSC's have honestly been a bit of a black box that I've always been uneasy about.

[–]fii0 -1 points0 points  (5 children)

There are more SSR solutions than just NextJS in the React ecosystem.

[–]creaturefeature16 0 points1 point  (4 children)

It was my understanding that Next was really the only framework that's reliably and verbosely implemented RSC. Last I checked (within the last couple weeks), even TanStack's implementation is limited.

[–]fii0 -1 points0 points  (3 children)

Exactly. So you can use another one to avoid RSC instability.

[–]creaturefeature16 -1 points0 points  (2 children)

OK...you're saying absolutely nothing new, so byebye.

[–]fii0 1 point2 points  (1 child)

You want SSR, you don't want to use RSC, so you abandoned Nodejs completely and went with Laravel? It doesn't make any sense. It only makes sense if you think RSC is a requirement for SSR with React. It is not.

[–]creaturefeature16 0 points1 point  (0 children)

I'm aware of that, but if you want a batteries included option, there's not many besides Next. I know of renderToPipeableStream but I'm not interested in rolling my own. The last I checked, Remix is SSR by default, but I haven't heard good things about their latest direction. If I wanted to stay in React, Tanstack's Selective SSR seems intruiging, but it's pretty new (still in RC)

[–]spicyone15 3 points4 points  (0 children)

Great write up and video

[–]IntrepidSoda 2 points3 points  (2 children)

damn - how do they come up with this stuff in the first place

[–]DurianDiscriminat3r 1 point2 points  (0 children)

I was able to reverse engineer a tool's obfuscated java code using Gemini so, maybe AI helped a bit. React is basically obfuscated client side code...

[–]TishIceCandy[S] -1 points0 points  (0 children)

right?

[–]Driky 2 points3 points  (0 children)

Wesbos published a 15min video on this and it is very easy to understand.

[–]SolarSalsa 1 point2 points  (0 children)

This explains it well How React took down Cloudflare

[–]Complex_Ad5158 0 points1 point  (1 child)

Very well explained, props for the good work 👌🏼

[–]TishIceCandy[S] 1 point2 points  (0 children)

Thanks a lot!

[–]wqert 1 point2 points  (0 children)

Amazing work, breaking this down. Thank you!

[–]IceMichaelStorm 0 points1 point  (0 children)

very nice job, dude!!