Browser Plug-in Client Resource Access
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Browser applications restrict the capabilities of markup language documents to prevent malicious access to client device resources, limiting functionality and performance for legitimate web applications that need to access user files, such as image sharing applications.
Innovation Solution
A browser plug-in that enhances the capabilities of browser applications by allowing access to local resources and performing computationally intensive tasks on the client device, using a general-purpose programming language like Java or ActiveX, while ensuring authenticity through hash verification and user permission mechanisms.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If browser applications restrict the capabilities of markup language documents to prevent malicious access, then security is improved, but functionality and performance for legitimate web applications deteriorate
Solution Approach 1:
The system segments the execution environment into two distinct layers: a restricted sandbox environment for markup language documents and an elevated privilege environment for native code plugins. This segmentation allows legitimate applications to access local resources through the plugin interface while malicious documents remain confined to the restricted sandbox, thus resolving the contradiction between security and functionality.
Solution Approach 2:
The native code plugin acts as an intermediary between the restricted markup language environment and the client device's local resources. The plugin provides a controlled interface that allows legitimate web applications to access file system, perform computations, and utilize hardware acceleration without compromising the sandbox security model, thereby enabling enhanced functionality while maintaining security boundaries.
2Adaptability or versatility
If markup language documents are allowed unrestricted access to the file system, then functionality for accessing user files is improved, but security against malicious websites deteriorates
Solution Approach 1:
The system implements dynamic privilege management where the markup language documents operate with restricted privileges in the sandbox, but can dynamically invoke native code plugins that run with elevated privileges. This dynamic approach allows legitimate applications to access user files when needed through the plugin interface, while malicious documents remain blocked due to lacking the necessary plugin invocations, thus balancing functionality and security.
3Ease of manufacture
If computationally intensive tasks are performed using scripting capabilities in markup language documents, then ease of implementation is improved, but performance deteriorates
Solution Approach 1:
The system merges the ease of implementation of markup language scripting with the high performance of native code execution. Web developers can continue to use familiar scripting languages for application logic while integrating native code plugins for computationally intensive operations such as image processing, video encoding, and cryptographic operations. This combination allows legitimate applications to achieve both ease of implementation and high performance, resolving the contradiction between these two parameters.
Data Source
AI summary
The functionality of a browser application is enhanced using a browser plug-in, which enables the browser application to access portions of a file system not otherwise accessible to the browser application. The enhanced functionality provided by the browser plug-in is used in one example by an image uploading web application. The browser application may also start a task in the background, such as a task for uploading several images, and then monitor the progress of the task even when the browser application navigates away from the page that initiated the task. The browser application may use a local web server running on the client device to perform tasks, including the rendering of images and monitoring progress of long running tasks.


