Javascript Landmark Fingerprinting for Bot Detection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for detecting bots and automated attacks on websites and mobile applications are inefficient and lack effective mechanisms, especially with the deprecation of user-agent strings.
Innovation Solution
A method and apparatus for data collection that utilizes client-side execution of a script to identify Javascript 'landmark' features, allowing for efficient bot detection by testing against specific API calls and function calls, rather than an unconstrained set of API calls.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conventional user-agent based fingerprinting is used, then browser identification is straightforward, but the method is being deprecated and lacks computational efficiency for modern privacy-focused browsers
Solution Approach 1:
The patent segments the fingerprinting process into two distinct phases: coarse-grained evaluation using landmark features to identify browser type, and fine-grained evaluation to determine specific version. This segmentation allows the system to achieve reliable identification while reducing computational overhead by only performing detailed analysis when necessary.
Solution Approach 2:
The patent performs preliminary action by pre-identifying landmark Javascript features that serve as quick indicators of browser type. These landmark features are evaluated first before any detailed version analysis, enabling the system to quickly eliminate incompatible browsers and focus computational resources only on relevant candidates.
2Measurement precision
If an unconstrained set of API calls is tested for fingerprinting, then comprehensive browser identification is achieved, but computational efficiency deteriorates
Solution Approach 1:
The patent divides the API testing process into two hierarchical levels: landmark feature testing for broad browser type classification, and detailed API function testing for specific version identification. This segmentation ensures comprehensive measurement precision while maintaining productivity by limiting detailed testing to only when landmark features indicate a match.
Solution Approach 2:
The patent applies partial action by testing only a selective subset of API calls rather than an unconstrained set. The system tests landmark features first, and only proceeds to test additional API functions if the initial landmarks suggest a potential match, thereby achieving sufficient precision without excessive computational action.
3Measurement precision
If detailed API function testing is performed for all browsers, then accurate version detection is achieved, but computational resources are wasted on incompatible browsers
Solution Approach 1:
The patent performs preliminary action by evaluating landmark features before detailed version detection. These landmark features serve as a filtering mechanism that quickly identifies compatible browsers, preventing wasteful computational resource expenditure on browsers that are fundamentally incompatible with the application.
Solution Approach 2:
The patent applies partial action by performing detailed API function testing only on browsers that pass the landmark feature evaluation. This selective approach ensures accurate version detection for compatible browsers while avoiding the energy waste of testing incompatible browsers with the same level of detail.
Data Source
AI summary
A method and apparatus for data collection to facilitate bot detection. According to this approach, and in lieu of conventional user agent-based fingerprinting, a client script is executed to attempt to identify one or more Javascript “landmark” features. In one embodiment, a landmark Javascript feature is a Javascript implementation that exists in a first browser type but not a second browser type distinct from the first browser type, and that also exists in one or more releases of the first browser type, but not in one or more other releases of the first browser type. By testing against landmark Javascript features as opposed to an unconstrained set of API calls and the like, the technique herein provides for much more computationally-efficient client-side operation.


