Skip to content

Spirals-Team/bikiniproxy

Repository files navigation

BikiniProxy

BikiniProxy is a novel technique to provide self-healing for the web. BikiniProxy is designed as an HTTP proxy that uses five self-healing strategies to rewrite buggy HTML and Javascript code.

Fully Automated HTML and Javascript Rewriting for Constructing a Self-healing Web Proxy (Thomas Durieux, Youssef Hamadi and Martin Monperrus), Proceedings of ISSRE, 2018.

Fully Automated HTML and JavaScript Rewriting for Constructing a Self-healing Web Proxy (Software Testing, Verification and Reliability, doi:10.1002/stvr.1731)

@inproceedings{durieux2018fully,
	author={Durieux, Thomas and Hamadi, Youssef and Monperrus, Martin},
	title={Fully Automated HTML and JavaScript Rewriting for Constructing a Self-healing Web Proxy},
	booktitle={Proceedings of the 29th IEEE International Symposium on Software Reliability Engineering (ISSRE)},
	organization={IEEE},
	doi = {10.1109/ISSRE.2018.00012},
	year={2018},
}

Self-healing Strategies

  1. HTTP/HTTPS Redirector that changes HTTP URLs to HTTPS URLs.
  2. HTML Element Creator that creates missing HTML elements.
  3. Library Injector injects missing libraries in the page.
  4. Line Skipper wraps a statement with an if to prevent invalid object access.
  5. Object Creator initializes a variable with an empty object to prevent further null dereferences.

DeadClick

DeadClick is a novel benchmark of JavaScript errors that are triggered in large production web applications. This benchmark has been constructed with a unique methodology based crawling the web for finding errors and advanced proxying to ensure that those errors can be reliably reproduced. The final benchmark contains 555 JavaScript reproducible production errors.

See DeadClick/README.me to have more details

Example

bikiniproxy

License

MIT License

About

Rewriting Proxy for HTML and Javascript. Towards a Self-healing Web.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages