1005
PHP is dead? (telegra.ph)
submitted 10 months ago by sag@lemm.ee to c/programmerhumor@lemmy.ml
you are viewing a single comment's thread
view the rest of the comments
[-] araozu@lemm.ee 3 points 10 months ago

Could you elaborate on the htmx security holes? I only know about xss attacks, and for those it's trivial to sanitize in the backend.

I too gravitate towards just templating for static or simple interactivity, but for pages that need SEO and interactivity I'm still wondering what's a good solution that doesn't involve SSR and a js framework. For a recent project I had I generated the html in php and sent a lot of pure js for dom manipulation

[-] pixxelkick@lemmy.world 9 points 10 months ago

Htmx has a bunch of logic that basically completely bypasses Content Security Policy stuff, as it has its own pseudo baked in "execute inline js" logic that executes arbitrary javascript via attributes on html elements.

Since this gets executed by the HTMX logic you load in from their library, it effectively allows an attacker to arbitrarily execute js via manipulating the DOM, and Content Security Policy won't pick it up because HTMX parses the attribute and executes on behalf of it (and you have already whitelisted HTMX in your CSP for it to function)

Result: It punctures a giant hole in your CSP, rendering it useless.

There's technically a flag you can flip to disable this functionality, but its via the dom so... not reliable imo. If I could pre-compile HTMX ahead of time with that functionality completely disabled to the degree it doesnt even get compiled into the output .js at all, then I would trust it.

But the fact all the logic is still technically there in the library I have loaded and I am purely relying on "this flag in the dom should block this from working, probably", I don't see that as very secure.

So until that gets fixed and I can compile htmx with webpack or vite in order to completely treeshake that functionality right the hell out of my output, I aint gonna recommend anyone use it if they want an iota of security on their site. It's got literally baked in security bypasses, don't use it.

Hell Id even just be happy if they released a "htmx-lite" package I could use, that just doesnt have that functionality baked in, thatd be enough to make me consider it.

this post was submitted on 30 Oct 2023
1005 points (96.1% liked)

Programmer Humor

32063 readers
923 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS