WO2013167169A1 - Method and apparatus - Google Patents
Method and apparatus Download PDFInfo
- Publication number
- WO2013167169A1 WO2013167169A1 PCT/EP2012/058431 EP2012058431W WO2013167169A1 WO 2013167169 A1 WO2013167169 A1 WO 2013167169A1 EP 2012058431 W EP2012058431 W EP 2012058431W WO 2013167169 A1 WO2013167169 A1 WO 2013167169A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- request
- sent
- script
- cause
- memory
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000013515 script Methods 0.000 claims abstract description 58
- 230000004044 response Effects 0.000 claims abstract description 28
- 230000015654 memory Effects 0.000 claims description 41
- 244000035744 Hura crepitans Species 0.000 claims description 9
- 238000001514 detection method Methods 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- LZDYZEGISBDSDP-UHFFFAOYSA-N 2-(1-ethylaziridin-1-ium-1-yl)ethanol Chemical compound OCC[N+]1(CC)CC1 LZDYZEGISBDSDP-UHFFFAOYSA-N 0.000 description 1
- 241001101720 Murgantia histrionica Species 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/535—Tracking the activity of the user
Definitions
- the present invention relates to a method and apparatus and in particular but not exclusively to a method and apparatus for monitoring applications.
- Users often access different services, such as Internet services. These services may be provided by a service provider. A user will access these services via a user device or a user equipment. The user device will connect to the service provider via network protocols such as TCP/IP.
- network protocols such as TCP/IP.
- DOM document object model
- This document may be a HTML (hypertext mark-up language) page.
- a DOM API application programming interface
- the DOM is used by a script to see the browser state and the HTML tags of the web page.
- the HTML page is rendered in the browser.
- the browser parses the HTML page.
- the DOM will then cause the page to be displayed.
- a user may interact with the browser and enter data which is required by the service provider.
- This data can take any suitable form and may for example be sign in data or the like. This data will need to be sent to the service provider.
- a method comprising: causing a first request to be sent; receiving a response to said request comprising a script; causing a second request to be sent comprising parameter information; running said script to determine type information associated with said parameter information; and causing said type information to be sent.
- the causing a second request to be sent may be responsive to a submission event.
- the submission event may be a submission of a form event.
- Running of said script may cause the detection of a dynamic generated form.
- the running of said script may cause mapping of type information to said parameters of a submitted form.
- the parameter information may comprises name value pair information.
- the method may comprise causing at least one of said first request, said second request and said type information to be sent to a gateway or a proxy.
- the method may comprise causing at least one of said first and second requests to be sent to a service provider.
- the method may comprise causing said type information to be sent to a third party.
- At least one of said requests may comprise an HTTP request.
- the response may comprise an HTTP response.
- the method may comprise running said script in a sand box.
- an apparatus configured to carry out any of the above method steps.
- a computer program comprising program code means arranged to perform the method may be provided.
- the computer program may be stored and/or otherwise embodied by means of a carrier medium.
- an apparatus comprising at least one processor and at least one memory including computer code for one or more programs, the at least one memory and the computer code configured, with the at least one processor, to cause the apparatus at least to: cause a first request to be sent; receive a response to said request comprising a script; cause a second request to be sent comprising parameter information; run said script to determine type information associated with said parameter information; and cause said type information to be sent.
- the at least one memory and the computer code may be configured, with the at least one processor, to cause the apparatus to cause a second request to be sent is responsive to a submission event.
- the submission event may be a submission of a form event.
- the at least one memory and the computer code may be configured, with the at least one processor, to cause the detection of a dynamic generated form.
- the at least one memory and the computer code may be configured, with the at least one processor, to cause mapping of type information to said parameters of a submitted form.
- the said parameter information may comprise name value pair information.
- the at least one memory and the computer code may be configured, with the at least one processor, to cause at least one of said first request, said second request and said type information to be sent to a gateway or a proxy.
- the at least one memory and the computer code may be configured, with the at least one processor, to cause at least one of said first and second requests to be sent to a service provider.
- the at least one memory and the computer code may be configured, with the at least one processor, to cause said type information to be sent to a third party.
- At least one of said requests may comprise an HTTP request.
- the response may comprise an HTTP response.
- the at least one memory and the computer code may be configured, with the at least one processor, to cause running of said script in a sand box.
- an apparatus comprising: means for causing a first request to be sent; means for receiving a response to said request comprising a script; means for causing a second request to be sent comprising parameter information; means for running said script to determine type information associated with said parameter information; and means for causing said type information to be sent.
- the means for causing said second request to be sent may be responsive to a submission event.
- the submission event may be a submission of a form event.
- the running means may be for running said script to cause the detection of a dynamic generated form.
- the running means may be for running said script to cause mapping of type information to said parameters of a submitted form.
- the parameter information may comprise name value pair information.
- the means for causing said first request to be sent may be for causing said first request to be sent to a gateway or proxy and/or the means for causing said second request to be sent may be for causing said second request to be sent to a gateway or proxy and/or the means for causing the type information to be sent may be for causing the type information to be sent to a gateway or a proxy.
- the means for causing said first request to be sent may be for causing said first request to be sent to a service provider and/or the means for causing said second request to be sent may be for causing said second request to be sent to a service provider.
- the means for causing said type information to be sent may be for causing said type information to be sent to a third party.
- At least one of said requests may comprise an HTTP request.
- the response may comprise an HTTP response.
- the running means may run said script in a sand box.
- the apparatus may be provided in a device such as a computer, smart phone, user equipment or the like.
- Figure 1 is a block diagram of a system
- Figure 2 shows a flow of a first embodiment
- Figure 3 shows a flow of a second embodiment
- Figure 4 schematically shows a client device
- Figure 5 schematically shows a gateway or proxy device
- Figure 6 schematically shows a service provider
- Figure 7 shows a block diagram of a second system.
- FIG. 1 is a block diagram of a system, indicated generally by the reference numeral 2.
- the system 2 comprises a client device 50, a gateway 52, and a service provider 54.
- the client device 50 may be any suitable device.
- the device may be a wireless or wired communication device.
- Non-limiting examples include a mobile station (MS) such as a mobile phone or what is known as a 'smart phone', a portable computer provided with a wireless interface card or other wireless interface facility, a net book, a tablet, a personal data assistant (PDA) a computer, a terminal or any combinations of these or the like.
- MS mobile station
- PDA personal data assistant
- the client device is configured in some embodiments to connect to a service provider 54 via the gateway or proxy 52 or in some embodiments, the client device may connect to the service provider, not via this gateway or proxy.
- FIG. 7 shows a block diagram of an alternative system.
- the system 12 comprises an application 4, a gateway 6, an identity management system (I DM) 8 and a server 10.
- the gateway 6 is provided between the application 4 and the server 10.
- the gateway 6 is also operatively coupled to the I DM 8.
- the application 4 is under the control of a user and the server 10 is at a service provider.
- the user at the application 4 provides credentials (such as a username and password, although, of course, other credentials could be used) to the gateway 6.
- the gateway 6 and the identity management system 8 may have a secured connection.
- the gateway 6 can use the secured connection to verify the user credentials at the identity management system (I DM) 8 in order to authenticate the user.
- I DM identity management system
- any service requests issued by the user via the application 4 are monitored by the gateway 6.
- the gateway 6 may monitor individual packets of data passing through the gateway. Furthermore, the gateway 6 is adapted to modify packets of data to insert the appropriate credentials for the user for the particular service that is being accessed.
- the IDM may have a user interface for user authentication.
- the components are shown as being directly connected to one another. This is possible in some embodiments. However it may be more usual for there to be other components such as a network and/or one or more further components between each of the components. For example one or more of the components may be connected by the Internet, a wired network and/or a wireless network.
- the client device may be under the control of a user and may have a web browser or other application with an integrated script engine.
- the script engine provides an interface with the capability of interconnecting a suitably written application with a scripting language.
- the service provider may be a web server or provider of a web application. Embodiments, however, are not limited to use with web browsers and web servers.
- a browser at the client renders a DOM (document object model) tree which was previously generated by parsing a HTML (hypertext mark-up language) source code.
- the DOM tree is rendered as a graphical representation such as a web page.
- client sided dynamical browser scripts e.g. JavaScript (e.g. ECMA standard number-262), VBScript or JScript
- the DOM tree can be manipulated by inserting, deleting or modifying parts of the DOM tree. This includes dynamical generation of forms and input fields (HTML forms).
- this web surveillance may be used for web analysis, sometimes referred to as web analytics.
- this surveillance may be used in order to determine a phishing attack or the like.
- the web surveillance component may not be aware of the type of the generated input field (e.g. radio button, drop down, check box, password field, text field).
- Some versions of HTML may know more input field types such as: fields for email, URL, number, range, date, time, day, week, month, year or the like.
- the web surveillance component may not assign the posted value to the originating field (e.g. it may not be possible to analyze which input fields are used, to what extent the input fields have been used and which of these options the user could choose from).
- Some known gateways and proxies support parsing of static outgoing HTML content, but do not support dynamic HTML content.
- Some known tracking or advertising technologies e.g. by outsourced web analytics
- Some known tracking or advertising technologies are designed to work on the client side, but do not support dynamically generated fields or forms.
- Browser plug-ins is able to observe dynamically generated elements (e.g. Mozilla Firefox add-on Firebug).
- plug-ins need to be installed to the browser first and thus act only with user consent.
- these dynamically generated forms and input fields may not be recognized by parsing the static HTML content which is send over the gateway or proxy to the client by the service provider. This means, that the gateway or proxy can parse the HTML content, before it passes through the client.
- the service provider response has HTML content with a form containing the text parameter varA and the password parameter varB (see below).
- the service provider receives (over the gateway or proxy) a POST request containing the parameters varA and varB as name-value-tuples.
- a POST request is one example of a request method supported by the HTTP protocol. The POST request may be used when the client needs to send data to the server as part of the request, such as when uploading a file or submitting a completed form.
- Some embodiments provide a technique for observing dynamically generated elements that may enable e.g. CSP's (communication service providers) to extend tracking mechanisms for e.g. dynamically generated HTML forms, which allow the tracker to recognise the user's preferred input selections.
- the client script (submit-event-listener) may be executed inside the browser's sandbox by the web browser. Therefore there may be no work around needed for protection mechanisms.
- Some embodiments may be used by e.g. the tracking industry to legally trace the user's behaviour.
- some embodiments may be used by security network components to observe the outgoing HTTP (hypertext transfer protocol) traffic (e.g. SaaS (Security as a Service product)).
- some embodiments may be used with operator side password management.
- this mechanism is used for detecting dynamic password fields (e.g. POST request) with the aim of storing them in a database for providing SSO (single sign on) to the user.
- This may be used with the IDM gateway.
- the types can be determined by parsing the static HTML content, before the client gets the HTML content.
- the service provider response has a HTML content without a form, but within a "special" script (which may be provided by the service provider), which manipulates the DOM to include a form, client-sided.
- the form will be included in the DOM by the given script, in some embodiments.
- the gateway or proxy does not know anything about the form. Some embodiments may address this issue so that the gateway or proxy will know at least some and in some embodiments all the data information of each form submission.
- the client side script is provided which observes all submit events of the page. Once triggered by such an event, the client side script will check the tree for dynamically added fields (e.g. password fields) and proceeds by sending the collected information back to the network component (e.g. gateway or proxy).
- the network component e.g. gateway or proxy. This can be done in any suitable way. For example this may be done by:
- AJAX issuing a separate AJAX request (Asynchronous JavaScript and XML).
- AJAX is used to create asynchronous web applications on the client side.
- AJAX allows the sending of data to and retrieval of data from a server;
- FIG. 2 shows a sequence followed for a gateway- proxy embodiment.
- the message flow is shown between a client 50, a gateway/proxy 52 and a service provider 54.
- a first step S1 an HTTP request is sent from the client to the gateway/proxy 52.
- step S2 the HTTP request is sent from the gateway/proxy 52 to the service provider 54.
- step S3 the service provider 54 provides a HTTP response to the gateway/proxy 52.
- the gateway/proxy provides a HTTP response with a modified content in step S4.
- the gateway/proxy includes in the HTML content a script, in order that the script is a part of the HTML content.
- the gateway/proxy also modifies the header to reflect the larger payload.
- the gateway/proxy includes scripts for Submit-Event-Listener, Submit- Event-Handlers, HTML-Formula-Detector and Parameter-Types-header. The function of these scripts will be described in more detail later. This script may not be detected as a virus or a Trojan, normally.
- the browser may see this script as an unmodified response of the service provider.
- the script will be started by the browser's script engine (e.g. javascript functions can be added to the "onLoad"-Event).
- the client does not see the effects of the included script, because it runs in the background).
- the client script (submit-event-listener) will be executed inside the browser's sandbox by the web browser. Therefore there is no work around needed for protection mechanisms.
- the sandbox is one example of a security mechanism which can be used to run untrusted programs or the like.
- a sandbox typically provides a set of resources for guest programs to run. It should be appreciated that in other embodiments, the script can be run in alternative environments.
- the browser starts the submit-event-listener. This monitors for the occurrence of events, especially submit-events of forms.
- An event can be any suitable event.
- the event may be the submission of information to the service provider, for example by way of an HTTP request.
- Other events may be Mouse-Events (mouse-enter, mouse- leave, mouse-move, mouse clicks etc.), Input-Field-Events (onfocus, onblur, events for keys e.g. key pressed etc.)
- step S6 the client clicks or prompts a submit-event.
- a client- sided submit-event-handler 56 is provided at the client. This effectively is a computer program which is configured to observe and handle the events.
- the client submits in step S7 the event in an HTTP request which includes parameters associated with the event.
- the HTTP request is submitted from the client to the gateway/proxy.
- the HTTP request contains the parameters Name-Value-Pairs without types. In other words just the data is submitted without an indication as to the nature, kind or type of that data.
- the Name-Value-Pairs are stored at the gateway/proxy 52.
- step S1 1 where an unmodified HTTP request is sent to the service provider. There may be Network-Transparency where in this case the services do not see that there is a proxy or gateway in the flow. In some embodiments, S1 1 may take place generally in parallel with one or more of steps S8 or S9.
- step S8 the submitted formula is detected by the client-sided submit-event-handler.
- a HTML-document can contain more than one form. Therefore embodiments are configured to detect the form (if unknown), on which the user clicked or otherwise activated.
- the script explores the current DOM state, in order to find out the input-field-types of the submitted form.
- the parameters types are fetched by the client-sided submit-event-handler.
- the parameter types are the nature or type of the data submitted in the HTTP request. This may for example identify a user name, a password, identity credentials or any other type of data.
- a text area may contain multi-lined text data. Options" are used to collect a set of possible values.
- HTML input types are examples, such as email, URL, number, range, time etc. However, any other possible types may be alternatively or additionally determined.
- step S10 the type-information is sent by the client-sided submit-event-handler to the gateway/proxy 52.
- this information may be via AJAX or as Web Bug/Beacon.
- a web bug is a technique used for example to track who is reading a web page, when, and from what computer.
- the gateway/proxy will complete the stored name- value pairs with the type-information.
- step S12 an HTTP response is sent from the service provider 54 to the gateway/ proxy 52.
- step S13 the HTTP response is sent from the gateway/proxy 52 to the client 50.
- HTTP response can be modified according to step S4.
- FIG. 3 shows a sequence flow for a service provider - third party embodiment.
- the message flow is shown between a client 50, a service provider 54 and a third party 58.
- the third party may be any suitable third party such as a web analyser.
- a HTTP request is sent from a client to the service provider 54.
- the service provider 54 provides a HTTP response with a modified content in step T2.
- This content is modified as described in relation to step S2 of Figure 2.
- the script will be from the third party.
- step T3 at the client 50, the browser starts the submit-event-listener. This is as described in relation to Step S5 of Figure 2.
- step T4 the client submits an event (as described in relation to Step S6 of Figure 2).
- a client-sided submit-event-handler 56 is provided at the client.
- the HTTP request which is submitted in step T5 from the client to the service provider contains Name-Value- Pairs (as described in relation to Step S7 of Figure 2).
- the HTTP request contains parameters Name-Value-Pairs without types.
- the service provider will include the script of a third party.
- step T6 the sender formula is detected by the client-sided submit-event-handler (as described in relation to Step S8 of Figure 2).
- step T7 the parameters are fetched by the client-sided submit-event-handler 56 (as described in relation to Step S9 of Figure 2).
- step T8 the type-information is sent by the client-sided submit-event-handler to the third party 58.
- this information may be via AJAX as Web Bug/Beacon.
- the third party (SP) gets only the name-value-pair in step T9.
- the type- information is not used by the SP, because the SP declares the required types of the parameters in the outgoing HTTP-responses (dynamically via DOM scripting or static in the HTML content).
- the HTTP response is sent from the service provider 52 to the client 50.
- the HTTP response may not be modified.
- Another advantage of some embodiments considers the security aspect of identifying phishing pages using overlaying, dynamically generated input fields.
- the input field signature of the HTML form will be similar to the original, but the receiving party will be different. This would allow identifying phishing pages in an easy manner.
- the gateway/proxy or third party would be able to determine if the HTTP request goes to a server which differs from the service provider server. This can be determined to be a phishing attack.
- the script for fetching the action-links of the forms may be modified to observe a change-event of the action-links. If a cross-side-script (XSS) tries to change the domain of an action-link, this may be detected in some embodiments.
- XSS cross-side-script
- FIG. 4 showing a schematic, partially sectioned view of a user device.
- the device 20 is configured to receive via an interface 26.
- the device is also provided with at least one data processing entity 21 , at least one memory 22 and other possible components 23 for use in software and hardware aided execution of tasks it is designed to perform.
- the at least one memory may be provided by one or more memories or by one or more databases.
- the data processing, storage and other relevant apparatus can be provided on an appropriate circuit board and/or in chipsets. This apparatus is denoted by reference 24.
- the user may control the operation of the device by means of a suitable user interface 25 which may be integral or separate from the processing part of the device.
- a display 27 can be also provided which may be integral or separate from the processing part of the device.
- FIG. 5 shows schematically a gateway 52.
- the Gateway 52 has a first interface 100 and a second interface 104.
- the first interface is configured to interface with the client 50.
- the second interface 104 is configured to interface with the service provider.
- the interfaces may be wired and/or wireless.
- the Gateway 52 has a processor 102.
- the processor may be a single processor or may comprise two or more processors.
- the Gateway 52 may have a first memory 108 which is configured to store the script. This is the script for supervising the form-submit-events, and determining the form-input-field-types.
- the Gateway 52 may have a second memory 106 which is configured to store data.
- this store may store the name-value-pairs with the type-information.
- a single memory may provide the first and second memories. In alternative embodiments, more than two memories may be provided.
- the same memory or store may be used to store both (the script and the name-value-type-triples).
- Figure 6 shows the service provider 54.
- the service provider has a first memory 134.
- the first memory 134 is configured to store name value pairs.
- the service provider 54 has a second memory 136.
- the second memory 136 is configured to store the script.
- the first and second memories may be provided by a common memory. Alternatively, more than two memories may be provided.
- the service provider has an interface 130 which is configured to interface with the client 50.
- the service provider has a second interface 138. This second interface allows the service provider 54 to receive the script from the third party.
- the communication between the client and the third party may be via the service provider.
- the interfaces may be wired and/or wireless.
- the function of the gateway or proxy of Figure 2 may be provided by an identity management system (I DM) such as shown in Figure 7.
- I DM identity management system
- a gateway will still be provided.
- the Gateway and the IDM may have a secured connection.
- the Gateway can use the secured connection to verify the user credentials at the I DM in order to authenticate the user. Once authenticated, any service requests issued by the user are monitored by the gateway.
- the Gateway may modify packets of data to insert the appropriate credentials for the use of the particular service that is being accessed.
- the I DM system may provide a single-sign-on procedure. In one example of a single-sign-on arrangement, a number of service providers trust an identity provided to authenticate a user. Once the user has completed a single authentication step at the identity provider, the user is able to access his account at any web application that trusts the authentication process of that identity provider.
- the IDM system (via IDM Gateway) may include the script in the HTTP response.
- Web analytics may be improved it if is also possible to observe dynamic added forms.
- Statistics about the usage of form input-fields selected by input-field-types can be collected.
- Information about how many forms are generated by client-sided scripts, and how many forms are responded in clear text format by service providers may be collected.
- Embodiments may provide detection of dynamic generated HTML/DOM-forms on the client-side and/or mapping of type information to the parameters (name-value-tuples) of submitted form.
- Some embodiments may have a service level agreement or the like between a telecommunications company and the user for using the gateway/proxy.
- the required data processing apparatus and functions of the entities described above may be provided by means of one or more data processors.
- the described functions at each end may be provided by separate processors or by an integrated processor.
- the data processors may be of any type suitable to the local technical environment, and may include one or more of general purpose computers, special purpose computers, microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASIC), gate level circuits and processors based on multi core processor architecture, as non limiting examples.
- the data processing may be distributed across several data processing modules.
- a data processor may be provided by means of, for example, at least one chip. Appropriate memory capacity can also be provided in the relevant devices.
- the memory or memories may be of any type suitable to the local technical environment and may be implemented using any suitable data storage technology, such as semiconductor based memory devices, magnetic memory devices and systems, optical memory devices and systems, fixed memory and removable memory.
- the various embodiments may be implemented in hardware or special purpose circuits, software, logic or any combination thereof. Some aspects of the invention may be implemented in hardware, while other aspects may be implemented in firmware or software which may be executed by a controller, microprocessor or other computing device, although the invention is not limited thereto. While various aspects may be illustrated and described as block diagrams, flow charts, or using some other pictorial representation, it is well understood that these blocks, apparatus, systems, techniques or methods described herein may be implemented in, as non-limiting examples, hardware, software, firmware, special purpose circuits or logic, general purpose hardware or controller or other computing devices, or some combination thereof.
- the software may be stored on such physical media as memory chips, or memory blocks implemented within the processor, magnetic media such as hard disk or floppy disks, and optical media such as for example DVD and the data variants thereof, CD.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
A method comprises causing a first request to be sent; receiving a response to said request comprising a script; causing a second request to be sent comprising parameter information; running said script to determine type information associated with said parameter information; and causing said type information to be sent.
Description
DESCRIPTION
TITLE
METHOD AND APPARATUS
The present invention relates to a method and apparatus and in particular but not exclusively to a method and apparatus for monitoring applications.
Users often access different services, such as Internet services. These services may be provided by a service provider. A user will access these services via a user device or a user equipment. The user device will connect to the service provider via network protocols such as TCP/IP.
Some web browsers use DOM (document object model) or the like to render documents. This document may be a HTML (hypertext mark-up language) page. A DOM API (application programming interface) may be used to modify or look at a web page. The DOM is used by a script to see the browser state and the HTML tags of the web page. The HTML page is rendered in the browser. The browser parses the HTML page. The DOM will then cause the page to be displayed.
A user may interact with the browser and enter data which is required by the service provider. This data can take any suitable form and may for example be sign in data or the like. This data will need to be sent to the service provider. According to an aspect, there is provided a method comprising: causing a first request to be sent; receiving a response to said request comprising a script; causing a second request to be sent comprising parameter information; running said script to determine type information associated with said parameter information; and causing said type information to be sent.
The causing a second request to be sent may be responsive to a submission event. The submission event may be a submission of a form event.
Running of said script may cause the detection of a dynamic generated form.
The running of said script may cause mapping of type information to said parameters of a submitted form.
The parameter information may comprises name value pair information.
The method may comprise causing at least one of said first request, said second request and said type information to be sent to a gateway or a proxy.
The method may comprise causing at least one of said first and second requests to be sent to a service provider.
The method may comprise causing said type information to be sent to a third party.
At least one of said requests may comprise an HTTP request.
The response may comprise an HTTP response. The method may comprise running said script in a sand box.
According to another aspect, there may be provided an apparatus configured to carry out any of the above method steps. A computer program comprising program code means arranged to perform the method may be provided. The computer program may be stored and/or otherwise embodied by means of a carrier medium.
According to another aspect, there is provided an apparatus comprising at least one processor and at least one memory including computer code for one or more programs, the at least one memory and the computer code configured, with the at least one processor, to cause the apparatus at least to: cause a first request to be sent; receive a response to said request comprising a script; cause a second request to be sent comprising parameter information; run said script to determine type information associated with said parameter information; and cause said type information to be sent.
The at least one memory and the computer code may be configured, with the at least one processor, to cause the apparatus to cause a second request to be sent is responsive to a submission event. The submission event may be a submission of a form event.
The at least one memory and the computer code may be configured, with the at least one processor, to cause the detection of a dynamic generated form. The at least one memory and the computer code may be configured, with the at least one processor, to cause mapping of type information to said parameters of a submitted form.
The said parameter information may comprise name value pair information. The at least one memory and the computer code may be configured, with the at least one processor, to cause at least one of said first request, said second request and said type information to be sent to a gateway or a proxy.
The at least one memory and the computer code may be configured, with the at least one processor, to cause at least one of said first and second requests to be sent to a service provider.
The at least one memory and the computer code may be configured, with the at least one processor, to cause said type information to be sent to a third party.
At least one of said requests may comprise an HTTP request. The response may comprise an HTTP response. The at least one memory and the computer code may be configured, with the at least one processor, to cause running of said script in a sand box.
According to an aspect, there is provided an apparatus comprising: means for causing a first request to be sent; means for receiving a response to said request comprising a script; means for causing a second request to be sent comprising parameter information;
means for running said script to determine type information associated with said parameter information; and means for causing said type information to be sent.
The means for causing said second request to be sent may be responsive to a submission event.
The submission event may be a submission of a form event.
The running means may be for running said script to cause the detection of a dynamic generated form.
The running means may be for running said script to cause mapping of type information to said parameters of a submitted form. The parameter information may comprise name value pair information.
The means for causing said first request to be sent may be for causing said first request to be sent to a gateway or proxy and/or the means for causing said second request to be sent may be for causing said second request to be sent to a gateway or proxy and/or the means for causing the type information to be sent may be for causing the type information to be sent to a gateway or a proxy.
The means for causing said first request to be sent may be for causing said first request to be sent to a service provider and/or the means for causing said second request to be sent may be for causing said second request to be sent to a service provider.
The means for causing said type information to be sent may be for causing said type information to be sent to a third party. At least one of said requests may comprise an HTTP request.
The response may comprise an HTTP response.
The running means may run said script in a sand box.
The apparatus may be provided in a device such as a computer, smart phone, user equipment or the like.
Some embodiments are now described, by way of example only, with reference to the accompanying drawings in which:
Figure 1 is a block diagram of a system;
Figure 2 shows a flow of a first embodiment;
Figure 3 shows a flow of a second embodiment;
Figure 4 schematically shows a client device;
Figure 5 schematically shows a gateway or proxy device;
Figure 6 schematically shows a service provider; and
Figure 7 shows a block diagram of a second system.
Figure 1 is a block diagram of a system, indicated generally by the reference numeral 2. The system 2 comprises a client device 50, a gateway 52, and a service provider 54.
The client device 50 may be any suitable device. The device may be a wireless or wired communication device. Non-limiting examples include a mobile station (MS) such as a mobile phone or what is known as a 'smart phone', a portable computer provided with a wireless interface card or other wireless interface facility, a net book, a tablet, a personal data assistant (PDA) a computer, a terminal or any combinations of these or the like.
The client device is configured in some embodiments to connect to a service provider 54 via the gateway or proxy 52 or in some embodiments, the client device may connect to the service provider, not via this gateway or proxy.
Figure 7 shows a block diagram of an alternative system. The system 12 comprises an application 4, a gateway 6, an identity management system (I DM) 8 and a server 10. The gateway 6 is provided between the application 4 and the server 10. The gateway 6 is also operatively coupled to the I DM 8. Typically, the application 4 is under the control of a user and the server 10 is at a service provider. In use, the user at the application 4 provides credentials (such as a username and password, although, of course, other credentials could be used) to the gateway 6. The gateway 6 and the identity management system 8 may have a secured connection. The gateway 6 can use the secured connection to verify the user credentials at the identity management system (I DM) 8 in order to authenticate the user. Once authenticated, any service requests issued by the user via the application
4 are monitored by the gateway 6. The gateway 6 may monitor individual packets of data passing through the gateway. Furthermore, the gateway 6 is adapted to modify packets of data to insert the appropriate credentials for the user for the particular service that is being accessed.
Alternatively or additionally, there may be user authentication of the application by the I DM. There may be user authentication with a login-page with redirection to the server if passed. The IDM may thus have a user interface for user authentication. In Figures 1 and 7, the components are shown as being directly connected to one another. This is possible in some embodiments. However it may be more usual for there to be other components such as a network and/or one or more further components between each of the components. For example one or more of the components may be connected by the Internet, a wired network and/or a wireless network.
The client device may be under the control of a user and may have a web browser or other application with an integrated script engine. The script engine provides an interface with the capability of interconnecting a suitably written application with a scripting language. The service provider may be a web server or provider of a web application. Embodiments, however, are not limited to use with web browsers and web servers.
A browser at the client renders a DOM (document object model) tree which was previously generated by parsing a HTML (hypertext mark-up language) source code. The DOM tree is rendered as a graphical representation such as a web page. With client sided dynamical browser scripts, e.g. JavaScript (e.g. ECMA standard number-262), VBScript or JScript, the DOM tree can be manipulated by inserting, deleting or modifying parts of the DOM tree. This includes dynamical generation of forms and input fields (HTML forms).
Some embodiments may be used for web surveillance. By way of example only, this web surveillance may be used for web analysis, sometimes referred to as web analytics. In other embodiments, this surveillance may be used in order to determine a phishing attack or the like.
For dynamically generated input fields currently the web surveillance component may not be aware of the type of the generated input field (e.g. radio button, drop down, check box,
password field, text field). Some versions of HTML may know more input field types such as: fields for email, URL, number, range, date, time, day, week, month, year or the like.
The web surveillance component may not assign the posted value to the originating field (e.g. it may not be possible to analyze which input fields are used, to what extent the input fields have been used and which of these options the user could choose from).
Some known gateways and proxies support parsing of static outgoing HTML content, but do not support dynamic HTML content. Some known tracking or advertising technologies (e.g. by outsourced web analytics) are designed to work on the client side, but do not support dynamically generated fields or forms. Browser plug-ins is able to observe dynamically generated elements (e.g. Mozilla Firefox add-on Firebug). However plug-ins need to be installed to the browser first and thus act only with user consent. In the case of for example, the identity management system IDM Gateway, these dynamically generated forms and input fields may not be recognized by parsing the static HTML content which is send over the gateway or proxy to the client by the service provider. This means, that the gateway or proxy can parse the HTML content, before it passes through the client.
For example the service provider response has HTML content with a form containing the text parameter varA and the password parameter varB (see below).
<html>
<body>
<form action="" method="POST">
<input type="text" name="varA" />
<input type="password" name="varB" />
<input type="submit" value="send to service provider" />
</form>
</body>
</html>
If the client clicks or in any other way selects the submit option, the service provider receives (over the gateway or proxy) a POST request containing the parameters varA and varB as name-value-tuples. A POST request is one example of a request method supported by the HTTP protocol. The POST request may be used when the client needs to send data to the server as part of the request, such as when uploading a file or submitting a completed form.
Some embodiments provide a technique for observing dynamically generated elements that may enable e.g. CSP's (communication service providers) to extend tracking mechanisms for e.g. dynamically generated HTML forms, which allow the tracker to recognise the user's preferred input selections. The client script (submit-event-listener) may be executed inside the browser's sandbox by the web browser. Therefore there may be no work around needed for protection mechanisms. Some embodiments may be used by e.g. the tracking industry to legally trace the user's behaviour. Alternatively or additionally some embodiments may be used by security network components to observe the outgoing HTTP (hypertext transfer protocol) traffic (e.g. SaaS (Security as a Service product)). Alternatively or additionally some embodiments may be used with operator side password management. Here this mechanism is used for detecting dynamic password fields (e.g. POST request) with the aim of storing them in a database for providing SSO (single sign on) to the user. This may be used with the IDM gateway. The types can be determined by parsing the static HTML content, before the client gets the HTML content. In some embodiments, the service provider response has a HTML content without a form, but within a "special" script (which may be provided by the service provider), which manipulates the DOM to include a form, client-sided. <html>
<script type="javascript" src="the_special_script.js" /> <body ...>
<!-
Here the form will be included in the DOM by the given script, in some embodiments. Currently the gateway or proxy does not know anything about the form. Some embodiments may address this issue so that the gateway or proxy will know at least some and in some embodiments all the data information of each form submission.
->
</body>
</html> The example above can although be realized with JScript, VBscript etc.
Thus in order to recognize forms generated by DOM manipulation the client side script is provided which observes all submit events of the page. Once triggered by such an event, the client side script will check the tree for dynamically added fields (e.g. password fields) and proceeds by sending the collected information back to the network component (e.g. gateway or proxy). This can be done in any suitable way. For example this may be done by:
• adding the information to the POST request / GET request;
• issuing a separate AJAX request (Asynchronous JavaScript and XML). AJAX is used to create asynchronous web applications on the client side. AJAX allows the sending of data to and retrieval of data from a server;
• serializing the information and appending it to a newly generated DOM object as source address (e.g. an image known as Web bug / beacon technology); and
· others (Flash, ActiveX, Java applet, etc.)
Reference is made to Figure 2 which shows a sequence followed for a gateway- proxy embodiment. The message flow is shown between a client 50, a gateway/proxy 52 and a service provider 54.
In a first step S1 , an HTTP request is sent from the client to the gateway/proxy 52.
In step S2, the HTTP request is sent from the gateway/proxy 52 to the service provider 54. In step S3, the service provider 54 provides a HTTP response to the gateway/proxy 52.
The gateway/proxy provides a HTTP response with a modified content in step S4. In particular, the gateway/proxy includes in the HTML content a script, in order that the script is a part of the HTML content. The gateway/proxy also modifies the header to reflect the larger payload. The gateway/proxy includes scripts for Submit-Event-Listener, Submit- Event-Handlers, HTML-Formula-Detector and Parameter-Types-header. The function of these scripts will be described in more detail later. This script may not be detected as a virus or a Trojan, normally. The browser may see this script as an unmodified response of the service provider. In step S5, at the client 50, the script will be started by the browser's script engine (e.g. javascript functions can be added to the "onLoad"-Event). In some embodiments the client does not see the effects of the included script, because it runs in the background). The client script (submit-event-listener) will be executed inside the browser's sandbox by the web browser. Therefore there is no work around needed for protection mechanisms. The sandbox is one example of a security mechanism which can be used to run untrusted programs or the like. A sandbox typically provides a set of resources for guest programs to run. It should be appreciated that in other embodiments, the script can be run in alternative environments. The browser starts the submit-event-listener. This monitors for the occurrence of events, especially submit-events of forms. An event can be any suitable event. By way of example the event may be the submission of information to the service provider, for example by way of an HTTP request. Other events may be Mouse-Events (mouse-enter, mouse- leave, mouse-move, mouse clicks etc.), Input-Field-Events (onfocus, onblur, events for keys e.g. key pressed etc.)
In step S6, the client clicks or prompts a submit-event. As shown schematically a client- sided submit-event-handler 56 is provided at the client. This effectively is a computer program which is configured to observe and handle the events.
The client submits in step S7 the event in an HTTP request which includes parameters associated with the event. The HTTP request is submitted from the client to the gateway/proxy. The HTTP request contains the parameters Name-Value-Pairs without types. In other words just the data is submitted without an indication as to the nature, kind or type of that data.
In step S7a, the Name-Value-Pairs are stored at the gateway/proxy 52. This is followed by step S1 1 where an unmodified HTTP request is sent to the service provider. There may be Network-Transparency where in this case the services do not see that there is a proxy or gateway in the flow. In some embodiments, S1 1 may take place generally in parallel with one or more of steps S8 or S9.
In step S8, the submitted formula is detected by the client-sided submit-event-handler. A HTML-document can contain more than one form. Therefore embodiments are configured to detect the form (if unknown), on which the user clicked or otherwise activated. The script explores the current DOM state, in order to find out the input-field-types of the submitted form.
In step S9, the parameters types are fetched by the client-sided submit-event-handler. The parameter types are the nature or type of the data submitted in the HTTP request. This may for example identify a user name, a password, identity credentials or any other type of data. A text area may contain multi-lined text data. Options" are used to collect a set of possible values. HTML input types are examples, such as email, URL, number, range, time etc. However, any other possible types may be alternatively or additionally determined.
In step S10, the type-information is sent by the client-sided submit-event-handler to the gateway/proxy 52. By way of example only this information may be via AJAX or as Web Bug/Beacon. A web bug is a technique used for example to track who is reading a web page, when, and from what computer. The gateway/proxy will complete the stored name- value pairs with the type-information.
In step S12, an HTTP response is sent from the service provider 54 to the gateway/ proxy 52. In step S13, the HTTP response is sent from the gateway/proxy 52 to the client 50. The
HTTP response can be modified according to step S4.
Reference is made to Figure 3 which shows a sequence flow for a service provider - third party embodiment.
The message flow is shown between a client 50, a service provider 54 and a third party 58. The third party may be any suitable third party such as a web analyser.
In a first step T1 , an HTTP request is sent from a client to the service provider 54.
The service provider 54 provides a HTTP response with a modified content in step T2. This content is modified as described in relation to step S2 of Figure 2. However the script will be from the third party. In step T3, at the client 50, the browser starts the submit-event-listener. This is as described in relation to Step S5 of Figure 2.
In step T4, the client submits an event (as described in relation to Step S6 of Figure 2). Again, a client-sided submit-event-handler 56 is provided at the client. The HTTP request which is submitted in step T5 from the client to the service provider contains Name-Value- Pairs (as described in relation to Step S7 of Figure 2). The HTTP request contains parameters Name-Value-Pairs without types. The service provider will include the script of a third party.
In step T6, the sender formula is detected by the client-sided submit-event-handler (as described in relation to Step S8 of Figure 2).
In step T7, the parameters are fetched by the client-sided submit-event-handler 56 (as described in relation to Step S9 of Figure 2).
In step T8, the type-information is sent by the client-sided submit-event-handler to the third party 58. By way of example only this information may be via AJAX as Web Bug/Beacon. The third party (SP) gets only the name-value-pair in step T9. The type- information is not used by the SP, because the SP declares the required types of the parameters in the outgoing HTTP-responses (dynamically via DOM scripting or static in the HTML content). The gateway/proxy needs the name-value-type-triples for realizing e.g. SSO via password-lists of users (type="password"). In step T10, the HTTP response is sent from the service provider 52 to the client 50. The HTTP response may not be modified.
Some embodiments may provide improved Web surveillance technologies. This may provide better statistics with a focus on dynamic client sided HTML content. Improved tracking technology may be provided by circumventing a protection mechanism relying on dynamic HTML.
Another advantage of some embodiments considers the security aspect of identifying phishing pages using overlaying, dynamically generated input fields. The input field signature of the HTML form will be similar to the original, but the receiving party will be different. This would allow identifying phishing pages in an easy manner. In other words the gateway/proxy or third party would be able to determine if the HTTP request goes to a server which differs from the service provider server. This can be determined to be a phishing attack. In some embodiments, the script for fetching the action-links of the forms may be modified to observe a change-event of the action-links. If a cross-side-script (XSS) tries to change the domain of an action-link, this may be detected in some embodiments.
Figure 4 showing a schematic, partially sectioned view of a user device. The device 20 is configured to receive via an interface 26. The device is also provided with at least one data processing entity 21 , at least one memory 22 and other possible components 23 for use in software and hardware aided execution of tasks it is designed to perform. The at least one memory may be provided by one or more memories or by one or more databases. The data processing, storage and other relevant apparatus can be provided on an appropriate circuit board and/or in chipsets. This apparatus is denoted by reference 24.
The user may control the operation of the device by means of a suitable user interface 25 which may be integral or separate from the processing part of the device. A display 27 can be also provided which may be integral or separate from the processing part of the device.
Figure 5 shows schematically a gateway 52. The Gateway 52 has a first interface 100 and a second interface 104.
The first interface is configured to interface with the client 50. The second interface 104 is configured to interface with the service provider. The interfaces may be wired and/or wireless.
The Gateway 52 has a processor 102. The processor may be a single processor or may comprise two or more processors. The Gateway 52 may have a first memory 108 which is configured to store the script. This is the script for supervising the form-submit-events, and determining the form-input-field-types.
The Gateway 52 may have a second memory 106 which is configured to store data. For example, this store may store the name-value-pairs with the type-information. In some embodiments, a single memory may provide the first and second memories. In alternative embodiments, more than two memories may be provided.
In some embodiments, the same memory or store may be used to store both (the script and the name-value-type-triples). Reference is made to Figure 6 which shows the service provider 54. The service provider has a first memory 134. The first memory 134 is configured to store name value pairs. The service provider 54 has a second memory 136. The second memory 136 is configured to store the script. Again, the first and second memories may be provided by a common memory. Alternatively, more than two memories may be provided. The service provider has an interface 130 which is configured to interface with the client 50. The service provider has a second interface 138. This second interface allows the service provider 54 to receive the script from the third party. In some embodiments, the communication between the client and the third party may be via the service provider. The interfaces may be wired and/or wireless.
In some embodiments, at least some of the function of the gateway or proxy of Figure 2 may be provided by an identity management system (I DM) such as shown in Figure 7. In some embodiments, a gateway will still be provided. The Gateway and the IDM may have a secured connection. The Gateway can use the secured connection to verify the user credentials at the I DM in order to authenticate the user. Once authenticated, any service requests issued by the user are monitored by the gateway. The Gateway may modify packets of data to insert the appropriate credentials for the use of the particular service that is being accessed. The I DM system may provide a single-sign-on procedure. In one example of a single-sign-on arrangement, a number of service providers trust an identity provided to authenticate a user. Once the user has completed a single authentication step at the identity provider, the user is able to access his account at any web application that
trusts the authentication process of that identity provider. In some embodiments, the IDM system (via IDM Gateway) may include the script in the HTTP response.
Web analytics may be improved it if is also possible to observe dynamic added forms. Statistics about the usage of form input-fields selected by input-field-types can be collected. Information about how many forms are generated by client-sided scripts, and how many forms are responded in clear text format by service providers may be collected.
Embodiments may provide detection of dynamic generated HTML/DOM-forms on the client-side and/or mapping of type information to the parameters (name-value-tuples) of submitted form.
Some embodiments may have one or more of the following advantages:
1. Improving the usage of input-fields of HTML/DOM-forms for web analytics.
2. Leverage form-processing (previously only for static forms possible) to web 2.0 + dynamic technology.
3. Monitoring, which data goes to service provider, is good for example for Data Loss Prevention.
4. Used for SSO.
5. Device/Browser independent mechanism, because of using the gateway/proxy and the script.
Some embodiments may have a service level agreement or the like between a telecommunications company and the user for using the gateway/proxy. In some cases, it might be necessary to re-enable surveillance of the HTTP traffic and the origination actions. For example this may be to prevent Trojans from submitting dynamically created forms filled by the browser's auto-completion tool.
The required data processing apparatus and functions of the entities described above may be provided by means of one or more data processors. The described functions at each end may be provided by separate processors or by an integrated processor. The data processors may be of any type suitable to the local technical environment, and may include one or more of general purpose computers, special purpose computers, microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASIC), gate level circuits and processors based on multi core processor architecture, as non limiting examples. The data processing may be distributed across several data
processing modules. A data processor may be provided by means of, for example, at least one chip. Appropriate memory capacity can also be provided in the relevant devices. The memory or memories may be of any type suitable to the local technical environment and may be implemented using any suitable data storage technology, such as semiconductor based memory devices, magnetic memory devices and systems, optical memory devices and systems, fixed memory and removable memory.
In general, the various embodiments may be implemented in hardware or special purpose circuits, software, logic or any combination thereof. Some aspects of the invention may be implemented in hardware, while other aspects may be implemented in firmware or software which may be executed by a controller, microprocessor or other computing device, although the invention is not limited thereto. While various aspects may be illustrated and described as block diagrams, flow charts, or using some other pictorial representation, it is well understood that these blocks, apparatus, systems, techniques or methods described herein may be implemented in, as non-limiting examples, hardware, software, firmware, special purpose circuits or logic, general purpose hardware or controller or other computing devices, or some combination thereof. The software may be stored on such physical media as memory chips, or memory blocks implemented within the processor, magnetic media such as hard disk or floppy disks, and optical media such as for example DVD and the data variants thereof, CD.
The foregoing description has provided by way of exemplary and non-limiting examples a full and informative description of the exemplary embodiment of this invention. However, various modifications and adaptations may become apparent to those skilled in the relevant arts in view of the foregoing description, when read in conjunction with the accompanying drawings and the appended claims. However, all such and similar modifications of the teachings of this invention will still fall within the scope of this invention as defined in the appended claims. Indeed there is a further embodiment comprising a combination of one or more of any of the other embodiments previously discussed.
Claims
1. A method comprising: causing a first request to be sent; receiving a response to said request comprising a script; causing a second request to be sent comprising parameter information; running said script to determine type information associated with said parameter information; and causing said type information to be sent.
2. A method as claimed in claim 1 , wherein causing a second request to be sent is responsive to a submission event.
3. A method as claimed in claim 2, wherein said submission event is a submission of a form event.
4. A method as claimed in any preceding claim, wherein running said script causes the detection of a dynamic generated form.
5. A method as claimed in any preceding claim, wherein running said script causes mapping of type information to said parameters of a submitted form.
6. A method as claimed in any preceding claim, wherein said parameter information comprises name value pair information.
7. A method as claimed in any preceding claim, comprising causing at least one of said first request, said second request and said type information to be sent to a gateway or a proxy.
8. A method as claimed in any of claims 1 to 6, comprising causing at least one of said first and second requests to be sent to a service provider.
9. A method as claimed in claim 8, comprising causing said type information to be sent to a third party.
10. A method as claimed in any preceding claim, wherein at least one of said requests comprises an HTTP request.
1 1 . A method as claimed in any preceding claim, wherein said response comprises an HTTP response.
12. A method as claimed in any preceding claim comprising running said script in a sand box.
13. A computer program comprising computer executable instructions which when run cause the method of any one of the preceding claims to be performed
14. An apparatus configured to carry out the method of any of claims 1 to 12.
15. An apparatus comprising at least one processor and at least one memory including computer code for one or more programs, the at least one memory and the computer code configured, with the at least one processor, to cause the apparatus at least to:
cause a first request to be sent; receive a response to said request comprising a script; cause a second request to be sent comprising parameter information; run said script to determine type information associated with said parameter information; and cause said type information to be sent.
16. An apparatus as claimed in claim 15, wherein the at least one memory and the computer code are configured, with the at least one processor, to cause the apparatus to cause a second request to be sent is responsive to a submission event.
17. An apparatus as claimed in claim 16, wherein said submission event is a submission of a form event.
18. An apparatus as claimed in claim 15, 16 or 17, wherein the at least one memory and the computer code are configured, with the at least one processor, to cause the detection of a dynamic generated form.
19. An apparatus as claimed in any of claims 15 to 18, wherein the at least one memory and the computer code are configured, with the at least one processor, to cause mapping of type information to said parameters of a submitted form.
20. An apparatus as claimed in any of claims 15 to 19, wherein said parameter information comprises name value pair information.
21 . An apparatus as claimed in any of claims 15 to 20, wherein the at least one memory and the computer code are configured, with the at least one processor, to cause
at least one of said first request, said second request and said type information to be sent to a gateway or a proxy.
22. An apparatus as claimed in any of claims 15 to 21 , wherein the at least one memory and the computer code are configured, with the at least one processor, to cause at least one of said first and second requests to be sent to a service provider.
23. An apparatus as claimed in any of claims 15 to 22, wherein the at least one memory and the computer code are configured, with the at least one processor, to cause said type information to be sent to a third party.
24. An apparatus as claimed in any of claims 15 to 23, wherein at least one of said requests comprises an HTTP request.
25. An apparatus as claimed in any of claims 15 to 24, wherein said response comprises an HTTP response.
26. An apparatus as claimed in any of claims 15 to 25, wherein the at least one memory and the computer code are configured, with the at least one processor, to cause running of said script in a sand box.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/397,917 US20150127771A1 (en) | 2012-05-08 | 2012-05-08 | Method and Apparatus |
EP12720154.9A EP2847976A1 (en) | 2012-05-08 | 2012-05-08 | Method and apparatus |
PCT/EP2012/058431 WO2013167169A1 (en) | 2012-05-08 | 2012-05-08 | Method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2012/058431 WO2013167169A1 (en) | 2012-05-08 | 2012-05-08 | Method and apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2013167169A1 true WO2013167169A1 (en) | 2013-11-14 |
Family
ID=46052741
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2012/058431 WO2013167169A1 (en) | 2012-05-08 | 2012-05-08 | Method and apparatus |
Country Status (3)
Country | Link |
---|---|
US (1) | US20150127771A1 (en) |
EP (1) | EP2847976A1 (en) |
WO (1) | WO2013167169A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112199024A (en) * | 2020-09-15 | 2021-01-08 | 汉海信息技术(上海)有限公司 | Method and device for responding to user operation, electronic equipment and readable storage medium |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9898445B2 (en) * | 2012-08-16 | 2018-02-20 | Qualcomm Incorporated | Resource prefetching via sandboxed execution |
US20140215050A1 (en) * | 2013-01-29 | 2014-07-31 | Array Networks, Inc. | Method and system for web analytics using a proxy |
CN105320661A (en) * | 2014-06-10 | 2016-02-10 | 中兴通讯股份有限公司 | Method and device for downloading resources |
EP3195562B1 (en) * | 2014-09-15 | 2021-12-08 | Okta, Inc. | Detection and repair of broken single sign-on integration |
US10686834B1 (en) * | 2017-02-23 | 2020-06-16 | Amazon Technologies, Inc. | Inert parameters for detection of malicious activity |
US11663655B2 (en) * | 2019-07-03 | 2023-05-30 | Capital One Services, Llc | Augmenting online transaction statements using e-commerce receipts |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070016949A1 (en) * | 2005-07-15 | 2007-01-18 | Microsoft Corporation | Browser Protection Module |
US20090248855A1 (en) * | 2008-03-31 | 2009-10-01 | International Business Machines Corporation | Method for monitoring web page statistics |
US20110022704A1 (en) * | 2009-06-30 | 2011-01-27 | International Business Machines Corporation | Method and system for collecting information on a user visit |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8566248B1 (en) * | 2000-08-04 | 2013-10-22 | Grdn. Net Solutions, Llc | Initiation of an information transaction over a network via a wireless device |
GB0027280D0 (en) * | 2000-11-08 | 2000-12-27 | Malcolm Peter | An information management system |
US7877681B2 (en) * | 2002-12-05 | 2011-01-25 | Borland Software Corporation | Automatic context management for web applications with client side code execution |
US20050183003A1 (en) * | 2004-02-17 | 2005-08-18 | Checkpoint Software Technologies Ltd. | Automatic proxy form filing |
WO2009139869A1 (en) * | 2008-05-13 | 2009-11-19 | Tirk Eric E | Device and method for distributing and monetizing host applications |
US20120222117A1 (en) * | 2009-09-02 | 2012-08-30 | Infotect Security Pte Ltd | Method and system for preventing transmission of malicious contents |
US8170921B2 (en) * | 2009-12-29 | 2012-05-01 | Ebay, Inc. | Dynamic hosted shopping cart |
JP2014519634A (en) * | 2011-04-28 | 2014-08-14 | インターデイジタル パテント ホールディングス インコーポレイテッド | SSO framework for multiple SSO technologies |
US8639754B2 (en) * | 2011-09-30 | 2014-01-28 | Advanced Messaging Technologies, Inc. | System and method for providing a protocol for message data |
US9805377B2 (en) * | 2012-01-17 | 2017-10-31 | ComScore. Inc. | Unified content visibility |
US9170782B2 (en) * | 2012-03-27 | 2015-10-27 | Microsoft Technology Licensing, Llc | Extensible mechanism for providing suggestions in a source code editor |
-
2012
- 2012-05-08 WO PCT/EP2012/058431 patent/WO2013167169A1/en active Application Filing
- 2012-05-08 US US14/397,917 patent/US20150127771A1/en not_active Abandoned
- 2012-05-08 EP EP12720154.9A patent/EP2847976A1/en not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070016949A1 (en) * | 2005-07-15 | 2007-01-18 | Microsoft Corporation | Browser Protection Module |
US20090248855A1 (en) * | 2008-03-31 | 2009-10-01 | International Business Machines Corporation | Method for monitoring web page statistics |
US20110022704A1 (en) * | 2009-06-30 | 2011-01-27 | International Business Machines Corporation | Method and system for collecting information on a user visit |
Non-Patent Citations (1)
Title |
---|
See also references of EP2847976A1 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112199024A (en) * | 2020-09-15 | 2021-01-08 | 汉海信息技术(上海)有限公司 | Method and device for responding to user operation, electronic equipment and readable storage medium |
Also Published As
Publication number | Publication date |
---|---|
US20150127771A1 (en) | 2015-05-07 |
EP2847976A1 (en) | 2015-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112148674B (en) | Log data processing method, device, computer equipment and storage medium | |
CN110324311B (en) | Vulnerability detection method and device, computer equipment and storage medium | |
US10834051B2 (en) | Proxy server-based malware detection | |
US9747441B2 (en) | Preventing phishing attacks | |
US20150127771A1 (en) | Method and Apparatus | |
EP3343872B1 (en) | System and method for gathering information to detect phishing activity | |
WO2016173200A1 (en) | Malicious website detection method and system | |
CN109672658B (en) | JSON hijacking vulnerability detection method, device, equipment and storage medium | |
US9026902B2 (en) | Handling unexpected responses to script executing in client-side application | |
CN103384888A (en) | Systems and methods for malware detection and scanning | |
CN108632219B (en) | Website vulnerability detection method, detection server, system and storage medium | |
CN106899549B (en) | Network security detection method and device | |
JP2006268849A (en) | System and method for highlighting domain in browser display | |
CN104834588B (en) | The method and apparatus for detecting resident formula cross site scripting loophole | |
US20190222587A1 (en) | System and method for detection of attacks in a computer network using deception elements | |
US10686834B1 (en) | Inert parameters for detection of malicious activity | |
GB2516972A (en) | Validating DDoS attacks based on social media content | |
CN111131236A (en) | Web fingerprint detection device, method, equipment and medium | |
US10581878B2 (en) | Detection of cross-site attacks using runtime analysis | |
US20160261715A1 (en) | System and method for securing a web server | |
CN114048483B (en) | XSS vulnerability detection method, device, equipment and medium | |
CN113839957B (en) | Unauthorized vulnerability detection method and device | |
JP6350235B2 (en) | Information processing apparatus, information processing apparatus control method, and information processing apparatus control program | |
CN115567502B (en) | Web security scanning method, related equipment and storage medium | |
Nilsson | Security in Behaviour Driven Authentication for Web Applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 12720154 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 14397917 Country of ref document: US |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2012720154 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |