Baroshem / nuxt-security

🛡 Automatically configure your app to follow OWASP security patterns and principles by using HTTP Headers and Middleware
https://nuxt-security.vercel.app/
MIT License
737 stars 56 forks source link

How to whitelist tag attributes in xss validator? (Error in docs) #426

Open MickL opened 2 months ago

MickL commented 2 months ago

How can I whitelist tag attributes in the xss validator? The docs say:

{ 'tagName': 'attr-1', 'attr-2' }

But this would be invalid TypeScript. I guess you meant to use an array?

{ 'tagName': ['attr-1', 'attr-2'] }

If yes then it doesnt work for me: whiteList: { a: ['href', 'target', 'rel'] }. I can whitelist tags like strong but I cant whitelist a tag with attributes. Maybe it is a bug also.

Baroshem commented 2 months ago

Hey Buddy,

Thanks for reporting this issue. The XSS validator uses the xss js package so it could be the upstream issue. As you suggest, I think there is also an issue in the documentation that dhoukd be fixed.

MickL commented 2 months ago

Can you reproduce? Maybe it is an upstream issue, it doesnt work like this: whiteList: { strong, a: ['href', 'target', 'rel'] } -> Usage of <strong> is ok, <a href="#">abc</a> not.

Maybe because the json arrives like this? <a href=\"#\">abc</a>

Also this xss validation things are very very hard to debug because there is no console log output why a request has been blocked.

Baroshem commented 2 months ago

Yes, I can reproduce and I think it is related with https://github.com/Baroshem/nuxt-security/issues/206

When I passed this string with yours whitelist xss validation configuration I got:

{ text: '<a href="' }

I think the issue is not related with whitelisting not working but rather with the fact that underlying package escapes the > character which results in an error for you.

Would you be interested in contributing to the project with a PoC of something that could fix this problem? :)

MickL commented 2 months ago

Unfortunately I dont have the time and probably also the insights :(

Baroshem commented 1 month ago

Ok, I will take a look at it in the upcoming days to see if I can fix it somehow