IP Library › Granted Patent US 9,087,137
Granted Patent B2
US 9,087,137 · App. 13/334,718 · Granted Jul 21, 2015

Detection of custom parameters in a request URL

Inventors: Yair Amit (Tel-Aviv, IL); Roee Hay (Herzliya, IL); Roi Saltzman (Herzliya, IL); Omer Tripp (Herzliya, IL)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F17/30893
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,087,137
App. No.
13/334,718
Granted
Jul 21, 2015
Kind
B2
Abstract

Identifying at least one custom parameter in a request uniform resource locator (URL). At least a first portion of source code of a Web application that typically consumes the custom parameter provided in the request URL can be identified. The Web application can be instrumented at the first portion of the source code. The Web application can receive the request URL and the Web application can be executed with the instrumented source code. At least one run-time value consumed by the second portion of the source code can be identified, and the run-time value can be compared to the request URL to determine whether the run-time value intersects with the request URL. Responsive to determining that the run-time value intersects with the request URL, the run-time value can be identified as the custom parameter. A custom parameter rule can be generated based on the comparison.

Claims (59)

1. A computer program product comprising:

a computer-readable storage device having computer-readable program code embodied therewith, the computer-readable program code comprising:

computer-readable program code configured to identify at least a first portion of source code of a Web application that typically consumes at least one custom parameter provided in a request URL;

computer-readable program code configured to instrument the Web application at the first portion of the source code by adding to the first portion of the source code additional code configured to obtain run-time values assigned to variables processed by statements of the first portion of the source code;

computer-readable program code configured to receive by the Web application the request URL and executing the Web application with the instrumented source code;

computer-readable program code configured to identify at least one run-time value consumed by a second portion of the source code;

computer-readable program code configured to compare the run-time value to the request URL to determine whether the run-time value intersects with the request URL, wherein the run-time value intersects with the request URL if the run-time value is obtained responsive to the first portion of source code consuming the request URL;

computer-readable program code configured to, responsive to determining that the run-time value intersects with the request URL, identify the run-time value as the custom parameter; and

computer-readable program code configured to generate a custom parameter rule based on the comparison.

2. The computer program product of claim 1 , the computer-readable program code further comprising:

computer-readable program code configured to identify at least the second portion of source code of the Web application that reads the request URL; and

computer-readable program code configured to instrument the Web application at the second portion of the source code.

3. The computer program product of claim 2 , wherein:

the computer-readable program code configured that identifies the first portion of source code comprises computer-readable program code configured to identify at least a first statement that typically consumes the at least one custom parameter provided in the request URL; and

the computer-readable program code configured that identifies the second portion of source code comprises computer-readable program code configured to identify at least a second statement that reads the request URL;

the computer-readable program code further comprising:

computer-readable program code configured to add a first identifier to the source code to denote the first statement; and

computer-readable program code configured to add a second identifier to the source code to denote the second statement.

4. The computer program product of claim 3 , the computer-readable program code further comprising:

computer-readable program code configured to determine whether the first statement and the second statement intersect;

wherein instrumenting the Web application at the first portion of the source code comprises, responsive to determining that the first statement and the second statement intersect, instrumenting the source code at the first portion of the source code to obtain the run-time value, wherein the run-time value is assigned to at least one variable processed by the first statement when the Web application is executed.

5. The computer program product of claim 4 , the computer-readable program code further comprising:

computer-readable program code configured to, during execution of the source code, track at least one flow of the run-time value from the second statement to the first statement; and

computer-readable program code configured to create a mapping from the run-time value to the request URL.

6. The computer program product of claim 5 , wherein the computer-readable program code configured to generate the custom parameter rule comprises:

computer-readable program code configured to interpolate the custom-parameter rule based on the mapping of the run-time value to the request URL.

7. The computer program product of claim 1 , the computer-readable program code further comprising:

computer-readable program code configured to receive by the Web application a subsequent request URL; and

computer-readable program code configured to apply the custom parameter rule to the subsequent request URL to identify at least one custom parameter contained in the subsequent request URL.

8. A computer program product comprising:

a computer-readable storage device having computer-readable program code embodied therewith, the computer-readable program code comprising:

computer-readable program code configured to identify at least a first portion of source code of a Web application that reads a request URL;

computer-readable program code configured to identify at least a second portion of source code of the Web application that typically consumes at least one custom parameter provided in the request URL;

computer-readable program code configured to instrument the Web application at the first portion of the source code and at the second portion of the source code by adding to the first portion of the source code and the second portion of the source code additional code configured to obtain run-time values assigned to variables processed by statements of the respective portions of the source code;

computer-readable program code configured to receive by the Web application the request URL and executing the Web application with the instrumented source code;

computer-readable program code configured to identify at least one run-time value consumed by the second portion of the source code;

computer-readable program code configured to compare the run-time value to the request URL to determine whether the run-time value intersects with the request URL, wherein the run-time value intersects with the request URL if the run-time value is obtained responsive to the first portion of source code consuming the request URL; and

computer-readable program code configured to generate a custom parameter rule based on the comparison.

9. The computer program product of claim 8 , wherein:

the computer-readable program code configured to identify the first portion of source code comprises computer-readable program code configured to identify at least a first statement that reads the request URL;

the computer-readable program code configured to identify the second portion of source code comprises computer-readable program code configured to identify at least a second statement that typically consumes the at least one custom parameter provided in the request URL; and

the computer-readable program code further comprising:

computer-readable program code configured to add a first identifier to the source code to denote the first statement; and

computer-readable program code configured to add a second identifier to the source code to denote the second statement.

10. The computer program product of claim 9 , the computer-readable program code further comprising:

computer-readable program code configured to determine whether the first statement and the second statement intersect;

wherein the computer-readable program code configured to instrument the Web application at the second portion of the source code comprises computer-readable program code configured to, responsive to determining that the first statement and the second statement intersect, instrument the source code to obtain the run-time value, wherein the run-time value is assigned to at least one variable processed by the second statement when the Web application is executed.

11. A system comprising:

a hardware processor configured to initiate executable operations comprising:

identifying at least a first portion of source code of a Web application that typically consumes the at least one custom parameter provided in the request URL;

instrumenting the Web application at the first portion of the source code by adding to the first portion of the source code additional code configured to obtain run-time values assigned to variables processed by statements of the first portion of the source code;

receiving by the Web application the request URL and executing the Web application with the instrumented source code;

identifying at least one run-time value consumed by a second portion of the source code;

comparing the run-time value to the request URL to determine whether the run-time value intersects with the request URL, wherein the run-time value intersects with the request URL if the run-time value is obtained responsive to the first portion of source code consuming the request URL;

responsive to determining that the run-time value intersects with the request URL, identifying the run-time value as the custom parameter; and

generating a custom parameter rule based on the comparison.

12. The system of claim 11 , wherein the processor is configured to initiate executable operations comprising:

identifying at least the second portion of source code of the Web application that reads the request URL; and

instrumenting the Web application at the second portion of the source code.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 22, 2011
From: AMIT, YAIR; HAY, ROEE; SALTZMAN, ROI; TRIPP, OMER
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 027434/0090 →
Continuity (1)
Related Publication 20130166676A1 · Jun 27, 2013