XSSFilt: an XSS Filter for Firefox
To protect against XSS attacks, we developed XSSFilt, a browser-resident client-side XSS filter. Client-side XSS filters allow users to protect themselves against XSS attacks without any cooperation from websites, and browser-resident filters are more accurate than previous filters, which were implemented using HTTP proxies.
- Protect against reflected XSS attacks without cooperation from websites.
- Low overhead (native C++ implementation)
- Almost no false positives (it should not break existing websites in absence of an actual attack).
- The filter should not rely on user input. Users often do not make sensible decisions when presented with security-related choices.
- The filter should not introduce new vulnerabilities in existing websites (see IE8).
The project has two separate codebases:
- A native C++ implementation, developed during a Mozilla Corporation internship. The code was submitted to Bugzilla, and underwent code reviews to improve its quality prior to its inclusion in a Firefox alpha version for widespread testing. The process has stalled during the review process.
Both versions are distributed as patches to the mozilla trunk.
The reference implementation is available under the GPL here.
The Mozilla implementation, developed for Firefox 17 (and still awaiting code review), is available at here.
This work was supported in part by an an ONR grant N000140710928, an NSF grant CNS-0831298, and an AFOSR grant FA9550-09-1-0539.