I came across the following ways PhantomJS can open a website without being detected as PhantomJS if the website only tests for these ways separately:
Can fool Website
“User-agent” via HTTP Yes
Client-side User-agent
check Yes
Inspect PluginArray No
Timed alert() No
HTTP Header order Yes
window.callPhantom Yes
HTML5 features No
Function.prototype.bind Yes
Stack trace No
Just wanted to confirm if the latest version of PhantomJS still loses in the areas mentioned above. Is spoofing the following information still not possible?
- HTML5 features
- Stack Trace generated by PhantomJS
- Plugin information
- Timed alert
References: http://www.slideshare.net/SergeyShekyan/shekyan-zhang-owasp, http://engineering.shapesecurity.com/2015/01/detecting-phantomjs-based-visitors.html