|Publication number||US7441026 B2|
|Application number||US 10/617,968|
|Publication date||Oct 21, 2008|
|Filing date||Jul 10, 2003|
|Priority date||Jul 10, 2003|
|Also published as||US20050010662|
|Publication number||10617968, 617968, US 7441026 B2, US 7441026B2, US-B2-7441026, US7441026 B2, US7441026B2|
|Inventors||Arvind Prabhakar, Krishnendu Chakraborty|
|Original Assignee||Sun Microsystems, Inc.|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (12), Referenced by (3), Classifications (10), Legal Events (5)|
|External Links: USPTO, USPTO Assignment, Espacenet|
The present claimed invention relates generally to the field of information processing systems. More particularly, embodiments of the present claimed invention relates to web-based applications handling in a browser environment.
The World Wide Web (the “web”) provides a popular source of information for consumers and business users. Surfing the web has become appealing to both sophisticated and casual users. The web browser has therefore become the primary means of accessing data over the Internet.
Today, a majority of front end client applications run on browsers. The popularity of Internet based applications has increased and the number of these applications has also increased. However, as the number and diversity of web based applications increase, processing these applications does encounter some problems. For example, it is typical for a browser processing a request to an application to result in a number of redirections before reaching an endpoint of the software execution for the application request. Hyper Text Transport Protocol (HTTP) redirections are typical in many browser based applications process and these redirections are normally across multiple points (resources).
Although the programming logic of Internet based software should finally redirect a user directly to a requested resource, very often due to bugs in the underlying software code and/or the wrong user configurations this may not always happen. Consequently, multiple point redirections in a HTTP based browser is very common. Unfortunately, a redirection that results in a resource request going from one resource to a number of other intermediary resources can often result in a redirection loop. Redirection loops are common in both single and multiple point redirections. In many web based applications, redirection loops can be infinite.
An infinite redirection loop can overload the underlying central processing unit of the computer system thereby detrimentally affecting performance of the overall system and rendering useless the software applications running on the service. Infinite loop redirections can also compromise a system's security by exposing the underlying computer system to malicious unauthorized attacks as applications request are in loops on the Internet. Potentially, worse yet infinite loops caused by redirections can result in denial of service at the resource or hosting server.
Thus, for the prior art user to access content from multiple web applications, the user sometimes encounters access to these applications being denied or inordinate waiting time to complete a simple access task. A system that reduces the number of application redirects in a web based browser applications is therefore desired.
Accordingly, to take advantage of the myriad of web applications and content on the Internet, a system and for method are described for managing intercommunication of applications in a multi-threaded environment to allow an efficient and expeditious processing of user requests to these applications. A need exists for “out-of-the-box” web applications content delivery system solutions to allow a wide range of applications to be processed and delivered to end-users connecting to the Internet environment with minimal interruption and redirecting communications between applications. The present invention provides such system and method.
Embodiments of the present invention are directed to a system and a method for controlling inter-application communication in a multi-application environment which prevents infinite loops caused by redirects. In general, embodiments of the present invention vary the degree of providing web content to a user connecting to the web environment by implementing user specified application monitoring to limit the number of redirects that an application may encounter based on predetermined user specified requirements. In other words, in one embodiment the invention provides user specific application monitoring in an Internet browser environment for preventing infinite loops caused by single point and multi point redirections.
Embodiments of the present invention also include an Internet browser that is user programmable to dynamically and automatically track a user's request to applications in the multi-application environment. The browser tracks the number of response points the user's request traverses in order to respond to the particular request, thereby allowing redirection loops to be identified.
Embodiments of the present invention also include an application data tracking unit that tracks the number of redirects that an application request encounters in the multi-application environment. The application data tracking unit may be a persistent data unit that may be programmed to store the number of redirects that an application may have to go through. In one embodiment of the present invention, the data tracking unit may be temporary for each application request session. In one embodiment, a cookie may be used to perform tracking. The temporary data tracking unit tracks application redirects for the particular session and terminates after the session is over. Multi point and single point redirects are tracked in this way according to one embodiment.
Embodiments of the present invention further include a redirect counter that counts the number of redirects an application request encounters during processing. The counter is programmable by a user to set a termination point of an application redirect for each application request. The counter can be programmed for a particular resource traversal and can be reset upon a loop break condition. Multiple counts are possible for multiple resource traversal types.
Embodiments of the present invention further include a request monitoring module for tracking a user's access to web applications. The monitoring module allows the present invention to determine which applications to terminate after a predefined period of time in order to perform loop breaking. Terminating applications processing may be based on a user defined content type, the frequency at which said content may be accessed and processed. Edge condition processing is also provided to prevent looping as a result of a loop break condition.
Embodiments of the present invention further include application security protection unit that protects the underlying computer system from unauthorized intrusion resulting from the redirection of applications as they are processed in the multi-application environment. The application security protection unit uses a denial of service attack scheme to prevent unauthorized access to applications as the applications are in a redirect loop.
These and other objects and advantages of the present invention will no doubt become obvious to those of ordinary skill in the art after having read the following detailed description of the preferred embodiments which are illustrated in the various drawing figures.
The accompanying drawings, which are incorporated in and form a part of this specification, illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention:
Reference will now be made in detail to the preferred embodiments of the invention, examples of which are illustrated in the accompanying drawings. While the invention will be described in conjunction with the preferred embodiments, it will be understood that they are not intended to limit the invention to these embodiments.
On the contrary, the invention is intended to cover alternatives, modifications and equivalents, which may be included within the spirit and scope of the invention as defined by the appended Claims. Furthermore, in the following detailed description of the present invention, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be obvious to one of ordinary skill in the art that the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, components, and circuits have not been described in detail as not to unnecessarily obscure aspects of the present invention.
The invention is directed to a system, an architecture, subsystem and method to manage user application requests in a multi-application device independent browser environment in a way superior to the prior art. In accordance with an aspect of the invention, a computer system provides application request processing and presentation which enables user specified web applications to be scoured in determining the type of application to present to the user while managing the number of redirects a request encounters when being processed.
In the following detailed description of the present invention, a system and method for an Internet protocol based communication system is described. The invention can be more fully described with reference to
The application redirect controller 210 includes components that periodically query web application 205 according to a user defined configuration file. The application redirect controller 210 detects changes (redirects) in the processing of application requests to specific web applications and summarizes those redirects and delivers it to the user. In one embodiment of the present invention, the summary of redirects presented by the application redirect controller 210 determines how the user may wish to have a subsequent application request to the same application point processed by the computer system 100. The applications redirect controller 210 also includes logic to monitor the processing points (destinations) 120-150 from various web sites or application destinations and uses the information to modify or determine whether to terminate a particular application request being processed.
In one embodiment of the present invention, the applications redirect controller 210 prevents redirects on a computer system after a predetermined limit. If infinite redirects are allowed to continue, the redirects will cause the computer system to shut down and take up resources on the computer system. The applications redirect controller 210 therefore provides a mechanism to guard against code written with good or malicious intent from taking away resources in the underlying computer system.
As shown in
In one embodiment of the present invention, the applications redirect controller 210 starts to register data in a cookie only when the applications redirect controller 210 detects an infinite loop for redirect. The application redirect controller 210 resets the data in the cookie the moment it detects that the redirect is not from an infinite redirect. In one embodiment, a count value is associated with the particular redirect and this information can be stored in a cookie associated with the session.
In a multi point redirect, a request REQ # 3 is redirected from point A 120 to point C 140 and point D 150. A subsequent request that results in a loop between points A 120, C 140 and D 150 will generate a response RESP #3. When a request results in a multi point redirect loop, the applications redirect controller 210 initiates cookies that track each redirection (e.g., point A 120 to point C 140 and point C 140 to point D 150). In one embodiment, a count values is associated with each of the redirects between points A 120, C 140 and D 150 and this information can be stored in each cookie associated with the request session.
In one embodiment of the present invention, the applications redirect controller 210 is configurable by a user to set the maximum number of redirects that may be allowed in the computer system 200. Setting the number of redirects enables the applications redirect controller 210 to terminate an application processing that exceeds the preset the maximum number of redirects that the system 200 allows for each applications, in an effort to break are terminate an infinite loop situation, it is appreciated that certain web site transitions that are indicative of a loop not in fact forming will reset the established count value. In one embodiment of the present invention, the applications redirect controller 210 is configurable to be active or inactive depending on the use case senario.
In one embodiment of the present invention, the applications redirect controller 210 also provides a reusable generic process for multi-point HTTP based infinite redirection protection independent of or transparent to the web server or applications server that is running the applications redirect controller 210. The applications redirect controller 210 provides a generic way to prevent systems from infinite loops in multi/single point HTTP redirects. In one embodiment of the present invention, the applications redirect controller 210 monitors web browser applications request process for HTTP based applications.
In one embodiment of the present invention, when a user issues a request to any point in an application and the point results in a redirect as the prior request, the redirect tracking module 300 tracks the response to the request. In a subsequent access to the same point in the same application that results in the same redirect, the redirect tracking module 300 tracks that particular redirection by the application for a certain number of attempts that is predefined in the redirect counter 310. By tracking the applications redirection in a loop between single or multiple points, the applications redirect controller 210 is able to restrict or regulate the number of redirects between points in the same application or across applications to break potential infinite loops.
In one embodiment of the present invention, the redirect counter 310 is programmably set by a user for a particular application or for a group of applications. As an application reaches a redirect attempt defined in the redirect counter 310, the redirect tracking module 300 terminates the request to the application. It is appreciated that if the termination action itself is a redirection, then this termination redirection is also monitored by the controller 210 and may be broken, if looping by redirection to a blank page.
In one embodiment of the present invention in which the application redirect controller 210 implements timer 340, the redirect tracking module 300 will track redirects by the application for a certain predefined period of time. The timer 340, when implemented, may be preset by the user to terminate redirects by a particular application or group of applications. In other words, the user may preset how long an application may wait to process a request to a particular point in the application when the user commences a request session for that particular application. The user may preset the timer 340 when the user logs on into the underlying computer system and any requests by the user to web applications are then automatically tracked by the redirect tracking module 300 for applications redirect loop.
The applications redirect controller 210 is then able to evaluate the results to determine whether the application is in a redirection loop and needed to be tracked. If the applications redirect controller 210 determines that the application is to be tracked, the tracking module 300 is initiated on a subsequent request to the same point (e.g., point A 120 in
In one embodiment of the present invention, the counter 310 is stored in the cookie where a redirect loop is present to monitor the number of attempts that the application in the redirect loop processes a request. If the request processing reaches a predetermined number of attempts, then the applications redirect controller 210 assumes that the application is in a redirect loop. Any subsequent request to the same point in the application that triggered the redirect loop is not processed. In one embodiment of the present invention, a request to a particular point in an application that results in a redirect between two points (e.g., point A 120 and point B 130) is deemed as a single point redirect.
Still referring to
As subsequent requests to points A and B result in redirections to pints B and C respectively, the cookie counter is increased for each of the cookies tracking the redirections between points A and B and points B and C. As each direction reaches the maximum predefined redirection count, the respective tracking cookies will terminate further subsequent access request to both points A and B. In one embodiment, the cookies generated for a multi point redirection monitoring needs to store the count value and the identification of the resources involved in the redirect sequence. From this information, multi point loops can be tracked (e.g., A-B count i; B-C count j and C-A count k, etc.). In one embodiment of the present invention, for multi point redirections, the applications redirect controller 210 provides a mechanism in which cookie names are based only on the source of the request. So that if the source of the request is “A” and the redirect destination is “C”, then the name of the cookie tracking the request will be based only on “A” and not on “A”-“C” together.
Reference is now made to
At step 530, the applications redirect controller 210 checks to determine if the user's request to the requesting point in the particular application resulted in a redirection. If processing the user's request did not result in a redirection, the application redirect controller 210 terminates monitoring the request.
In an embodiment in which a timer is used to track redirects, if the user's request does not result in a redirection (e.g., request processed within predefined processing time), the application redirect controller 210 terminates monitoring the request. If the predefined processing time lapses while the request is still being processed, a redirection is assumed and the counter value is increased. The applications redirect controller 210 resets the counter in a subsequent request that does not result in a redirection.
If on the other hand, the request processing results in a redirection, the applications redirect controller 210 initiates a cookie to track processing the request to the same point on subsequent requests by the user at step 540. At step 550, the applications redirect controller 210 checks to determines whether a subsequent request by the user to the requesting point (e.g., point A) to the same application results in the same redirection as the prior redirection. If the subsequent request processing results in the same redirection, the applications redirect controller 210 assumes processing of the request to be in a redirection loop and increments the redirection counter for the requesting point.
At step 560, the applications redirect controller 210 checks to determine whether the redirect counter set for the requesting point (e.g., point A) has reach the maximum predetermined redirection count. If the maximum redirection count is reached processing terminates at step 580 and the monitoring for the particular request stops at step 590.
The foregoing descriptions of specific embodiments of the present invention have been presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed, and obviously many modifications and variations are possible in light of the above teaching. The embodiments were chosen and described in order to best explain the principles of the invention and its practical application, to thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications that are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the claims appended hereto and their equivalents.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US5870546 *||Dec 23, 1997||Feb 9, 1999||Infoseek Corporation||Method and apparatus for redirection of server external hyper-link reference|
|US6098093 *||Mar 19, 1998||Aug 1, 2000||International Business Machines Corp.||Maintaining sessions in a clustered server environment|
|US6134588 *||Nov 12, 1997||Oct 17, 2000||International Business Machines Corporation||High availability web browser access to servers|
|US6189030 *||May 1, 1998||Feb 13, 2001||Infoseek Corporation||Method and apparatus for redirection of server external hyper-link references|
|US6212560 *||May 8, 1998||Apr 3, 2001||Compaq Computer Corporation||Dynamic proxy server|
|US6269370 *||Sep 15, 1998||Jul 31, 2001||Infoseek Corporation||Web scan process|
|US6438592 *||Feb 25, 1998||Aug 20, 2002||Michael G. Killian||Systems for monitoring and improving performance on the world wide web|
|US20020002622 *||Apr 16, 2001||Jan 3, 2002||Mark Vange||Method and system for redirection to arbitrary front-ends in a communication system|
|US20020002686 *||Apr 16, 2001||Jan 3, 2002||Mark Vange||Method and system for overcoming denial of service attacks|
|US20020078191 *||Dec 20, 2000||Jun 20, 2002||Todd Lorenz||User tracking in a Web session spanning multiple Web resources without need to modify user-side hardware or software or to store cookies at user-side hardware|
|US20020095454 *||Feb 5, 2002||Jul 18, 2002||Reed Drummond Shattuck||Communications system|
|US20020194483 *||Jul 25, 2001||Dec 19, 2002||Storymail, Inc.||System and method for authorization of access to a resource|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US8543715 *||Jan 12, 2011||Sep 24, 2013||Google Inc.||Redirect control in web browsers|
|US9326202 *||May 12, 2008||Apr 26, 2016||Telecom Italia S.P.A.||Method and system for the common management of communication resources in a telecommunications network having distinct communication resources pools|
|US20110082937 *||May 12, 2008||Apr 7, 2011||Telecom Italia S.P.A.||Method and system for the common management of communication resources in a telecommunications network having distinct communication resources pools|
|U.S. Classification||709/224, 709/223, 709/205, 709/217, 709/203|
|International Classification||G06F15/173, G06F15/16, G06F9/46|
|Nov 21, 2003||AS||Assignment|
Owner name: SUN MICROSYSTEMS, INC., CALIFORNIA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:PRABHAKAR, ARVIND;CHAKRABORTY, KRISHNENDU;REEL/FRAME:014711/0454
Effective date: 20031030
|Jan 27, 2009||CC||Certificate of correction|
|Apr 4, 2012||FPAY||Fee payment|
Year of fee payment: 4
|Dec 16, 2015||AS||Assignment|
Owner name: ORACLE AMERICA, INC., CALIFORNIA
Free format text: MERGER AND CHANGE OF NAME;ASSIGNORS:ORACLE USA, INC.;SUN MICROSYSTEMS, INC.;ORACLE AMERICA, INC.;REEL/FRAME:037303/0349
Effective date: 20100212
|Apr 6, 2016||FPAY||Fee payment|
Year of fee payment: 8