Method and system for containment of usage of language interfaces
First Claim
Patent Images
1. A method to be executed by at least one processor in an electronic environment, comprising:
- identifying a first constant data of a first client program, the first constant data expressed in a first grammar type directed to a first linguistic interface of a first service implementation;
determining a substitution code to replace the first constant data, the substitution code indicating an expression in a second grammar type directed to a second linguistic interface of a second service implementation, the expression equivalent to the first constant data;
searching a mapping table having a plurality of arbitrary strings corresponding respectively to a plurality of mapping strings; and
creating a new entry in the mapping table if none of the arbitrary strings of the plurality of arbitrary strings matches an input string of the first constant data, wherein the new entry includes a new arbitrary string matching the input string of the first constant data, wherein a new matching string is generated to correspond to the new arbitrary string, wherein the new matching string is a second constant data created in the new entry as the expression in the second grammar type directed to the second linguistic interface,wherein the first and second service implementations implement equivalent services, and the first and second linguistic interfaces are distinct.
11 Assignments
0 Petitions
Accused Products
Abstract
Client software is modified by a translator to use unique variant of linguistic interface of a service. An interceptor pre-processes subsequent client service requests from translated unique linguistic interface to standard linguistic interface implemented by service. Usage of linguistic interfaces of service is contained, rendering service incapable of executing arbitrary input, even if such input is crafted specifically for the service interface.
280 Citations
30 Claims
-
1. A method to be executed by at least one processor in an electronic environment, comprising:
-
identifying a first constant data of a first client program, the first constant data expressed in a first grammar type directed to a first linguistic interface of a first service implementation; determining a substitution code to replace the first constant data, the substitution code indicating an expression in a second grammar type directed to a second linguistic interface of a second service implementation, the expression equivalent to the first constant data; searching a mapping table having a plurality of arbitrary strings corresponding respectively to a plurality of mapping strings; and creating a new entry in the mapping table if none of the arbitrary strings of the plurality of arbitrary strings matches an input string of the first constant data, wherein the new entry includes a new arbitrary string matching the input string of the first constant data, wherein a new matching string is generated to correspond to the new arbitrary string, wherein the new matching string is a second constant data created in the new entry as the expression in the second grammar type directed to the second linguistic interface, wherein the first and second service implementations implement equivalent services, and the first and second linguistic interfaces are distinct. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method, comprising:
-
receiving a request for executing a first program, the first program comprising a first constant data, the first constant data expressed in a first grammar type directed to a first linguistic interface of a first service implementation; determining a substitution code to replace the first constant data, the substitution code indicating an expression in a second grammar type directed to a second linguistic interface of a second service implementation, the expression equivalent to the first constant data; generating a second program including the first program with the first constant data replaced by the substitution code; and executing the second program, wherein the first and second service implementations implement equivalent services, and the first and second linguistic interfaces are distinct. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method to be executed by at least one processor in an electronic environment, comprising:
-
identifying a calling code in a first program, the calling code for submitting a service parameter data to a first service implementation having a first linguistic interface configured to interpret requests that conform to a first grammar type; identifying a first constant data in the first program, wherein the service parameter data is determined using the first constant data via at least one code path in the first program; defining a substitution code to replace the first constant data, the substitution code indicating an expression in a second grammar type directed to a second linguistic interface of a second service implementation; and generating a second program, the second program comprising the substitution code, wherein the first and second service implementations implement equivalent services, and the first and second linguistic interfaces are distinct. - View Dependent Claims (16, 17, 18)
-
-
19. A system, comprising:
-
a memory to store instructions; and a processor configured to execute the instructions to; identify a first constant data of a first client program, the first constant data expressed in a first grammar type directed to a first linguistic interface of a first service implementation; determine a substitution code to replace the first constant data, the substitution code indicating an expression in a second grammar type directed to a second linguistic interface of a second service implementation, the expression equivalent to the first constant data; search a mapping table having a plurality of arbitrary strings corresponding respectively to a plurality of mapping strings; and create a new entry in the mapping table if none of the arbitrary strings of the plurality of arbitrary strings matches an input string of the first constant data, wherein the new entry includes a new arbitrary string matching the input string of the first constant data, wherein a new matching string is generated to correspond to the new arbitrary string, wherein the new matching string is a second constant data created in the new entry as the expression in the second grammar type directed to the second linguistic interface, wherein the first and second service implementations implement equivalent services, and the first and second linguistic interfaces are distinct. - View Dependent Claims (20)
-
-
21. A system, comprising:
-
a memory to store instructions; and a processor configured to execute the instructions to; receive a request for executing a first program, the first program comprising a first constant data, the first constant data expressed in a first grammar type directed to a first linguistic interface of a first service implementation; determine a substitution code to replace the first constant data, the substitution code indicating an expression in a second grammar type directed to a second linguistic interface of a second service implementation, the expression equivalent to the first constant data; and generate a second program including the first program with the first constant data replaced by the substitution code, wherein the first and second service implementations implement equivalent services, and the first and second linguistic interfaces are distinct. - View Dependent Claims (22)
-
-
23. A system, comprising:
-
a memory to store instructions; and a processor configured to execute the instructions to; identify a calling code in a first program, the calling code for submitting a service parameter data to a first service implementation having a first linguistic interface configured to interpret requests that conform to a first grammar type; identify a first constant data in the first program, wherein the service parameter data is determined using the first constant data via at least one code path in the first program; define a substitution code to replace the first constant data, the substitution code indicating an expression in a second grammar type directed to a second linguistic interface of a second service implementation; and generate a second program, the second program comprising the substitution code, wherein the first and second service implementations implement equivalent services, and the first and second linguistic interfaces are distinct. - View Dependent Claims (24)
-
-
25. At least one non-transitory computer readable storage medium having instructions stored thereon, the instructions when executed by a processor cause the processor to:
-
identify a first constant data of a first client program, the first constant data expressed in a first grammar type directed to a first linguistic interface of a first service implementation; determine a substitution code to replace the first constant data, the substitution code indicating an expression in a second grammar type directed to a second linguistic interface of a second service implementation, the expression equivalent to the first constant data; search a mapping table having a plurality of arbitrary strings corresponding respectively to a plurality of mapping strings; and create a new entry in the mapping table if none of the arbitrary strings of the plurality of arbitrary strings matches an input string of the first constant data, wherein the new entry includes a new arbitrary string matching the input string of the first constant data, wherein a new matching string is generated to correspond to the new arbitrary string, wherein the new matching string is a second constant data created in the new entry as the expression in the second grammar type directed to the second linguistic interface, wherein the first and second service implementations implement equivalent services, and the first and second linguistic interfaces are distinct. - View Dependent Claims (26)
-
-
27. At least one non-transitory computer readable storage medium having instructions stored thereon, the instructions when executed by a processor cause the processor to:
-
receive a request for executing a first program, the first program comprising a first constant data, the first constant data expressed in a first grammar type directed to a first linguistic interface of a first service implementation; determine a substitution code to replace the first constant data, the substitution code indicating an expression in a second grammar type directed to a second linguistic interface of a second service implementation, the expression equivalent to the first constant data; and generate a second program including the first program with the first constant data replaced by the substitution code, wherein the first and second service implementations implement equivalent services, and the first and second linguistic interfaces are distinct. - View Dependent Claims (28)
-
-
29. At least one non-transitory computer readable storage medium having instructions stored thereon, the instructions when executed by a processor cause the processor to:
-
identify a calling code in a first program, the calling code for submitting a service parameter data to a first service implementation having a first linguistic interface configured to interpret requests that conform to a first grammar type; identify a first constant data in the first program, wherein the service parameter data is determined using the first constant data via at least one code path in the first program; define a substitution code to replace the first constant data, the substitution code indicating an expression in a second grammar type directed to a second linguistic interface of a second service implementation; and generate a second program, the second program comprising the substitution code, wherein the first and second service implementations implement equivalent services, and the first and second linguistic interfaces are distinct. - View Dependent Claims (30)
-
Specification