Problem solve Get help with specific problems with your technologies, process and projects.

How to defend against a DOM-based XSS attack

Learn how DOM-based XSS attacks differ from typical cross-site scripting attacks, and learn best practices for defending against them.

What is the difference between a DOM-based cross-site scripting (XSS) attack versus a typical XSS attack? How should...

enterprise defenses differ for DOM-based attacks?

Ask the Expert!

SearchSecurity expert Nick Lewis is standing by to answer your questions about enterprise security threats. Submit your question via email. (All questions are anonymous.)

DOM-based XSS attacks are a type of XSS attack where the JavaScript code embedded in a webpage is modified so unexpected JavaScript is run, allowing the attacker to access cookies or other sensitive data. It does not modify the HTML on the victim webpage like a traditional XSS, but it can be just as damaging.

Enterprise defenses against DOM-based XSS attacks are similar to those against regular XSS attacks, but they do vary when it comes to defending clients versus servers.

To defend a client system, it would be helpful to use a Web browser that blocks potential XSS attacks -- like Firefox with the NoScript plug-in -- or use client-side host intrusion prevention software that blocks XSS attacks.

On the server side, either a network-based Web application firewall or an intrusion prevention system with XSS signatures could be used. The potentially vulnerable application should also include input validation, which not only ensures that only valid input is used, but also offers additional security benefits, such as preventing SQL injection. Validation of the submitted data in the system can also reduce the manual processes to clean the data.

Currently, there are new attack prevention techniques being discussed, such as the anti-XSS framework conceived by researchers Joseph Bugeja and Geraint Price, but there are no silver bullets to block all XSS attacks. Bugeja and Price described their anti-XSS framework as a layer that sits between a Web application and user-generated input, allowing an enterprise to write rules about what application input can be accepted or blocked. If this rule-based mechanism proves viable, it may be a worthwhile emerging defense against DOM-based XSS attacks.

This was last published in December 2013

Dig Deeper on Application attacks (buffer overflows, cross-site scripting)