US20100287132A1 - System, method and computer readable medium for recording authoring events with web page content - Google Patents
System, method and computer readable medium for recording authoring events with web page content Download PDFInfo
- Publication number
- US20100287132A1 US20100287132A1 US12/435,758 US43575809A US2010287132A1 US 20100287132 A1 US20100287132 A1 US 20100287132A1 US 43575809 A US43575809 A US 43575809A US 2010287132 A1 US2010287132 A1 US 2010287132A1
- Authority
- US
- United States
- Prior art keywords
- content
- events
- web page
- page
- web
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 40
- 230000003993 interaction Effects 0.000 claims abstract description 20
- 230000004048 modification Effects 0.000 claims description 17
- 238000012986 modification Methods 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 12
- 238000001514 detection method Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 12
- 230000015654 memory Effects 0.000 description 9
- 230000008859 change Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 3
- 241000282412 Homo Species 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/169—Annotation, e.g. comment data or footnotes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/174—Form filling; Merging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2133—Verifying human interaction, e.g., Captcha
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/02—Comparing digital values
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/107—Computer-aided management of electronic mailing [e-mailing]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
Definitions
- This invention relates to a system, method and computer readable medium for providing and processing user content generated in web pages.
- CAPTCHA C ompletely A utomated P ublic T uring test to tell C omputers and H umans A part.
- a CAPTCHA is a type of challenge-response test presented on screen to determine if the user is a human.
- a problem with using CAPTCHAs is that they can be automatically solved by computer algorithms.
- humans can be used to solve CAPTCHAs the first time, with the response being recorded with the original challenge so if the same challenge is reused later a computer program can respond without assistance from a human.
- CAPTCHAs can be annoying to users and can typically only be used at predetermined locations within an application (e.g. a web form during user logon).
- Random events interrupt some otherwise predictable order of events by presenting new activities to the player/user. These are usually used to discourage players from using automated means to artificially gain experience within a gaming environment. Random events are annoying to users/players unless well crafted within the web page/game. Random events do not occur at predetermined locations but may require ongoing background analysis to estimate when a user/player may be using automated means of control.
- event streams generated at the client device are analyzed by a server, such as the web server or a classification server, in order to determine whether the event streams that have been generated match known human or non-human derived event streams.
- a server such as the web server or a classification server
- What is required is a system, method and computer readable medium for recording entry of content into a web page that facilitates detection of a non-human presence at a client browser.
- a method for recording web page content into a web page comprising at least one user entry element.
- the method comprises receiving content into the at least one user entry element, recording one or more events that occurred during entry of the content, and submitting the content and the one or more events to a web server.
- a web server configured to:
- the web page comprises at least one user entry element, an event observer module that records events generated when content is added to the at least one user entry element, and an authored content module that writes the recorded events into a hidden events field associated with the at least one user entry element.
- a computer-readable medium comprising computer-executable instructions for execution by a processor, that, when executed, cause the processor to receive a content submission from a web browser comprising content of a user entry element of a web page, and one or more events generated in the web browser during authoring of the content.
- the processor is further caused to determine a document object model of the web page from the events, and compare the determined document object model with a stored document object model for the web page.
- FIG. 1 illustrates a system for providing a web page and recording web page content
- FIG. 2 illustrates a method for modifying a web page structure
- FIG. 3 illustrates a method for recording web page content
- FIG. 4 illustrates a process of an authored content module
- FIG. 5 illustrates a method for processing a content submission
- FIG. 6 illustrates a processor and memory of an web server
- FIG. 7 illustrates an instruction set that may be executed on the processor and memory of FIG. 6 ;
- FIG. 8 illustrates the processor and memory of FIG. 9 in association with a processor and memory of a client browser.
- an authored content module was provided within a web page and used to modify form fields and similar user entry elements of a web page to include hidden data fields.
- An event observer module recorded the events such as mouse clicks, mouse moves, key strokes etc that were generated when a user entered content to the form fields.
- the authored content module updated the hidden field with an interaction identifier provided by the event observer module.
- the authored content and the event stream were thus commonly identified by the interaction identifier, enabling the authored content and the event stream to be later associated, such as at the web server or some offsite server.
- FIG. 1 A system 10 in accordance with the present disclosure is illustrated in FIG. 1 .
- a client 18 provides web page requests 13 to a web server 14 , in response to which, the web server 14 provides page content 11 for display in a browser 15 of the client 18 .
- the web page 11 will include visible content and may include code 27 for content submission to the web server 14 via user entry elements such as an HTML form element.
- user entry elements such as an HTML form element.
- AJAX methods may be used in place of the form elements.
- the specific content submission technique is considered irrelevant for the purposes of the present disclosure and all appropriate user entry elements and content submission methods are considered to be equivalent and are intended to be encompassed herein.
- the web server 14 may include a page repository 17 from which the web server 14 retrieves page content for generating the web pages 11 in response to page requests from the client 18 .
- the page that the web server 14 gets from the page repository 25 may be a simple file system or a more complex repository, may optionally undergo a structural change by a page modification module 21 .
- the page modification module 12 may insert or delete elements to change the structure of the page without changing the behavior and without changing, or minimally changing, the viewport rendering of the page.
- the structural change may simply be an insertion of attributes to existing elements, which does not actually change the Document Object Model (DOM) structure.
- DOM Document Object Model
- a process 100 for page modification by the page modification module 21 will be described with reference to FIG. 2 .
- the web server 14 having received a page request from the client 18 , determines whether page modification is active. In one embodiment, the web page may be altered on each delivery instance in order to prevent replay attacks (e.g. replaying a previously recorded human generated event stream). If active, the web server 14 then determines whether the page structure is to be altered (step 102 ), in which case, the web server retrieves the page from the page repository 25 and inserts, or possibly deletes, one or more page elements (step 103 ). One example of a page structure change would add an extra element.
- the page elements are typically added in a way that does not significantly alter the display of the web page, and are provided non-reversibly, e.g. randomly, for this particular page request.
- the value attributes may be randomly generated or they may be derived from other available parameters.
- the changes made to the page structure, including the values added are captured and associated with an InteractionID for the particular page request.
- the captured changes and data are provided to the Response Processing Module for storing in a locally accessible data store in association with the InteractionID.
- an authored content module 24 and event observer module 26 are generated as part of the web page 11 .
- the event observer module 26 observes events generated in a user interaction with the web page 27 at the client 18 .
- the event observer module 26 records events generated within the web browser 15 , such as mouse clicks, mouse moves, text entries etc.
- the function of the event observer module is modified such that the event information is stored locally until all the information of the form is submitted to the web server 14 .
- the authored content module 24 processes the web page content and adds hidden form fields so that when user content is created, the events generated during the content creation can be associated with the content in a process to be described in greater detail below. In one embodiment, the authored content module 24 adds a hidden “events observed” field to each user entry element of the web page 27 .
- a user enters content where appropriate, such as in the HTML form elements described above.
- various events are generated and recorded by the event observer module 26 .
- Events may include mouse clicks, mouse moves, key strokes etc.
- the client will submit content 29 , e.g. via an HTML form element field, to the web server 14 .
- the hidden form fields such as the “events observed” field, may be dynamically updated with recorded events from the event observer module 26 .
- the content submission process is illustrated in the flowchart 200 of FIG. 3 .
- the user enters content into the user entry elements, i.e. form fields, of the web page.
- one or more events are recorded by the event observer module ( 202 ).
- the content and the events are submitted to the web server 14 .
- the authored content module 24 is provided within the web page content 11 in a manner that is invisible to the user.
- the authored content module 24 determines whether authored content tracking is enabled for that web page. If enabled, the authored content module 24 then dynamically adds hidden input elements, such as “events observed” field to forms or other user content areas on the page (step 402 ) as will be described in greater detail below.
- the authored content module 24 registers callback with the event observer module 26 (step 403 ).
- the authored content module is set to awaiting callbacks (step 404 ).
- the event observer module 26 observes events generated in a user interaction with the web page 27 at the client 18 .
- the event observer module 26 records events generated within the web browser 15 , such as mouse clicks, mouse moves, text entries etc.
- a callback to the authored content module 24 is triggered, (step 405 ).
- the authored content module 24 then updates the events observed component of each user entry field (step 406 ) prior to submission of the web page content 29 to the web server 14 .
- the authored content module 24 can use the function below to add a hidden input field that will be updated dynamically.
- the example function discovers the form by id but forms can also be discovered by traversing the structure of the Document Object Model (DOM).
- DOM Document Object Model
- a web page may contain code for a page element “field1” as follows:
- the “insert form tracker” function locates form containing the “field1” field and registers the “EventsObserved” field as a hidden field. A user may enter “sometext” in field1.
- the content may be submitted to the web server as follows:
- the observed event data includes the event “mousemove.span1.x.120.y.310” which is submitted with the field1 content “sometext”.
- the field content and hidden field data are submitted to the web server 14 where they are associated with the Interaction ID described above.
- the web page containing the “field1” field described above may be modified by the process described with reference to FIG. 2 .
- the modification may be provided as follows:
- each event handler will record an identifier for its DOM element into the data stream.
- the content submission carries extra information added dynamically by the authored content module 24 .
- the extra information includes the observed user interface events and the DOM element that each event was observed on (or some sample or subset of such). Because the events indicate the DOM element that each event was observed on, the events can be analyzed to infer the structure of the DOM.
- Page modification allows the web server to alter the page structure by the creation of additional, usually non-visible, page elements and values. Page modification is useful in detecting malicious clients and preventing replay attacks. While a single mouse move event is shown, a person skilled in the art will readily understand that multiple events may be recorded and provided in the content submission. Additionally, an “events observed” field may be provided for each field in a form element.
- the data gathered in the “events observed” fields may be suitably encoded and, as mentioned, may be a sample or subset of the observed events.
- the function performing the down sampling may be generated uniquely per page request by the Page Modification Module.
- FIG. 5 there is shown a process undertaken by the response processing module 19 of the web server 14 .
- the content submission is received.
- the interaction ID associated with the content submission is checked against the local data store.
- a matching Interaction ID indicates that the page content was altered by the page modification module 21 in the modification process described above with reference to FIG. 2 .
- the response processing module replaces the default page with an altered page matching the page modification module's 21 changes.
- the DOM structure may be partially or fully included in the data sent in the “EventsObserved” field.
- the event handlers on the elements with ids “span1” and “div8328” added these attribute values into the EventsObserved field.
- the response processing module has a record of the page (as modified) and its DOM structure is compared (step 504 ) with the structure indicated by the data inserted during event capturing which arrived with the content submission. Any attribute values inserted during page modification can also be compared at this stage.
- “div8328” may include a random number, 8328, that was added by the page modification module for a particular interaction.
- a mismatch in the DOM structure and/or attribute values may be indicative of a non-human user at the client computer 18 , such as an automated machine invoking an automated content submission perhaps using a previously recorded human web page interaction (a replay attack).
- a malicious client may have replaced some or all of the web page content, thereby affecting either the DOM structure or the additional attribute values.
- the content confirmation process may include providing a dynamic CAPTCHA to the client 18 , as described in the Applicant's co-pending application Attorney Docket No. HAUSER006, the contents of which are explicitly incorporated herein by reference.
- event analysis may be optionally performed (step 506 ) to determine the likely event generator type, e.g. human, non-human etc. Further detail of event generator analysis is described in the Applicant's co-pending application Attorney Docket No. HAUSER001 referenced above. Alternatively or in addition, the events may be analyzed to correlate the number, timing and type of events with the actual content generated to determine if the content is most likely human generated, as described in the Applicant's co-pending application Attorney Docket No. HAUSER007 referenced above. If the event analysis indicates a likely non-human user, then the content confirmation process 507 may be initiated. Otherwise, if the content submission is shown to be most likely human generated, then further processing of the content submission may follow.
- event analysis indicates a likely non-human user, then the content confirmation process 507 may be initiated. Otherwise, if the content submission is shown to be most likely human generated, then further processing of the content submission may follow.
- further processing of the content submission may include binding of the content, e.g. “sometext”, to the underlying events involved in the generation of the content.
- the bind operation may be initiated from the web server 14 in response to the web server 14 receiving the content submission 29 .
- a bind code may be created as a one-way hash of the concatenation of the hash of the content and/or the hash of the events generated in creating the content.
- the bind code may be associated with the content by a content ID field, by the interaction ID, or by some other suitable identifier.
- the binding operation may occur within the web server 14 or may be provided by a third party server (not shown) in response to a bind request from the web server 14 .
- the binding of the events to the content allows additional services, such as the determination of various work metrics to be performed, as described in greater detail in the Applicant's co-pending patent application Attorney Docket No. HAUSER007 referenced above.
- the page modification may be provided as a way to change the event stream signature. This provides resistance to automated attacks on providing fake (or automated) event stream data.
- the web server has control over the whole web page and, properly configured, it can change the structure of the web page, on each request if required.
- the event observer module 26 and the authored content module 24 may be provided as code embedded in a web page 11 from the web server 14 .
- the Event Observer Module 26 and the Authored Content Module 24 may be provided as a link back to the web server 14 or a third party server for the resource containing the code which the web browser will fetch as part of loading the web page.
- the web server 12 may include a processor 61 operatively associated with a memory 62 as shown in FIG. 6 .
- the memory 62 may store instructions that are executable on the processor 61 .
- the memory 62 may provide elements of the data store for the response processing module 19 .
- An instruction set 600 that may be executed on the event server processor 61 is depicted in the flowchart of FIG. 7 . Specifically, when executed, the instruction set 600 allows the processor to receive a content submission from the client browser 601 .
- the content submission may include the content entered by the user and the events generated during the authoring of the content.
- the processor may then determine a DOM structure of the web page from the events that have been supplied 602 and compare the observed DOM structure with a stored DOM structure for the particular web page interaction, identified by the Interaction ID (step 603 ).
- the content submission may be received from a second processor, such as a processor 71 of the client browser shown in FIG. 8 , that may also be operatively associated with a memory 72 .
- the second processor 71 may provide the content submission through a suitable communications link 65 .
- the information sent between various modules can be sent between the modules via at least one of a data network, the Internet, an Internet Protocol network, a wireless source, and a wired source and via plurality of protocols.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
- This invention relates to a system, method and computer readable medium for providing and processing user content generated in web pages.
- In many web based applications, it may be necessary to verify that a human is using a computer, rather than an automated computer program, as one example. One well known solution for use with web based forms, is to use an application such as CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart). A CAPTCHA is a type of challenge-response test presented on screen to determine if the user is a human. A problem with using CAPTCHAs is that they can be automatically solved by computer algorithms. Further, humans can be used to solve CAPTCHAs the first time, with the response being recorded with the original challenge so if the same challenge is reused later a computer program can respond without assistance from a human. CAPTCHAs can be annoying to users and can typically only be used at predetermined locations within an application (e.g. a web form during user logon).
- An alternative solution, often used in video games is to insert random events. Random events interrupt some otherwise predictable order of events by presenting new activities to the player/user. These are usually used to discourage players from using automated means to artificially gain experience within a gaming environment. Random events are annoying to users/players unless well crafted within the web page/game. Random events do not occur at predetermined locations but may require ongoing background analysis to estimate when a user/player may be using automated means of control.
- An alternative system and method for determining whether web page interactions are human or non-human is described in the Applicant's co-pending application Attorney Docket No. Hauser001, the contents of which are herein incorporated by cross reference. In the Applicant's solution, event streams generated at the client device are analyzed by a server, such as the web server or a classification server, in order to determine whether the event streams that have been generated match known human or non-human derived event streams. As event stream processing becomes more and more commonplace, it is inevitable that computer programs will be created that attempt to generate human-like event streams.
- What is required is a system, method and computer readable medium for recording entry of content into a web page that facilitates detection of a non-human presence at a client browser.
- In one aspect of the disclosure, there is provided a method for recording web page content into a web page comprising at least one user entry element. The method comprises receiving content into the at least one user entry element, recording one or more events that occurred during entry of the content, and submitting the content and the one or more events to a web server.
- In one aspect of the disclosure, there is provided a web server configured to:
- generate a web page and provide the web page to a client browser. The web page comprises at least one user entry element, an event observer module that records events generated when content is added to the at least one user entry element, and an authored content module that writes the recorded events into a hidden events field associated with the at least one user entry element.
- In one aspect of the disclosure, there is provided a computer-readable medium comprising computer-executable instructions for execution by a processor, that, when executed, cause the processor to receive a content submission from a web browser comprising content of a user entry element of a web page, and one or more events generated in the web browser during authoring of the content. The processor is further caused to determine a document object model of the web page from the events, and compare the determined document object model with a stored document object model for the web page.
- The invention will now be described, by way of example only, with reference to specific embodiments and to the accompanying drawings in which :
-
FIG. 1 illustrates a system for providing a web page and recording web page content; -
FIG. 2 illustrates a method for modifying a web page structure; -
FIG. 3 illustrates a method for recording web page content; -
FIG. 4 illustrates a process of an authored content module; -
FIG. 5 illustrates a method for processing a content submission; -
FIG. 6 illustrates a processor and memory of an web server; -
FIG. 7 illustrates an instruction set that may be executed on the processor and memory ofFIG. 6 ; and -
FIG. 8 illustrates the processor and memory ofFIG. 9 in association with a processor and memory of a client browser. - In the Applicant's co-pending patent application Attorney Docket No. HAUSER007, the contents of which are incorporated herein by reference, there was described a system for binding authored content from a web page with the events that were generated during the creation of the authored content. In that system, an authored content module was provided within a web page and used to modify form fields and similar user entry elements of a web page to include hidden data fields. An event observer module recorded the events such as mouse clicks, mouse moves, key strokes etc that were generated when a user entered content to the form fields. When the content was submitted from a client browser to a web server, the authored content module updated the hidden field with an interaction identifier provided by the event observer module. The authored content and the event stream were thus commonly identified by the interaction identifier, enabling the authored content and the event stream to be later associated, such as at the web server or some offsite server.
- A
system 10 in accordance with the present disclosure is illustrated inFIG. 1 . In thesystem 10, aclient 18 providesweb page requests 13 to aweb server 14, in response to which, theweb server 14 providespage content 11 for display in abrowser 15 of theclient 18. Typically, theweb page 11 will include visible content and may includecode 27 for content submission to theweb server 14 via user entry elements such as an HTML form element. Many alternative user entry elements and content submissions methods will be known to a person skilled in the art. For example, AJAX methods may be used in place of the form elements. However, the specific content submission technique is considered irrelevant for the purposes of the present disclosure and all appropriate user entry elements and content submission methods are considered to be equivalent and are intended to be encompassed herein. - The
web server 14 may include apage repository 17 from which theweb server 14 retrieves page content for generating theweb pages 11 in response to page requests from theclient 18. In one embodiment, the page that theweb server 14 gets from the page repository 25, which may be a simple file system or a more complex repository, may optionally undergo a structural change by apage modification module 21, The page modification module 12 may insert or delete elements to change the structure of the page without changing the behavior and without changing, or minimally changing, the viewport rendering of the page. In one embodiment, the structural change may simply be an insertion of attributes to existing elements, which does not actually change the Document Object Model (DOM) structure. - A
process 100 for page modification by thepage modification module 21 will be described with reference toFIG. 2 . Atstep 101, theweb server 14, having received a page request from theclient 18, determines whether page modification is active. In one embodiment, the web page may be altered on each delivery instance in order to prevent replay attacks (e.g. replaying a previously recorded human generated event stream). If active, theweb server 14 then determines whether the page structure is to be altered (step 102), in which case, the web server retrieves the page from the page repository 25 and inserts, or possibly deletes, one or more page elements (step 103). One example of a page structure change would add an extra element. If the original web page had the following elements, <span id=“span1”> <input name=“field1” id=“field1”/> </span>, then a modified page may have inserted a <div>element as follows, <div id=“div8328”> <span id=“span1”> <input name=“field1” id=“field1”/> </span> </div>. If the original page has been constructed with extra <div>, <span>, or other elements then another suitable page structure change would remove one of the extra elements. The page elements are typically added in a way that does not significantly alter the display of the web page, and are provided non-reversibly, e.g. randomly, for this particular page request. Atstep 104, unique value attributes are inserted into the page elements, e.g. the attribute id=“div8328” in the example above. In one embodiment, the value attributes may be randomly generated or they may be derived from other available parameters. Atstep 105, the changes made to the page structure, including the values added, are captured and associated with an InteractionID for the particular page request. Atstep 106, the captured changes and data are provided to the Response Processing Module for storing in a locally accessible data store in association with the InteractionID. - As described in the Applicant's co-pending patent application Attorney Docket No. HAUSER007 referenced above, an authored
content module 24 andevent observer module 26 are generated as part of theweb page 11. Theevent observer module 26 observes events generated in a user interaction with theweb page 27 at theclient 18. Theevent observer module 26 records events generated within theweb browser 15, such as mouse clicks, mouse moves, text entries etc. However, in the present disclosure, the function of the event observer module is modified such that the event information is stored locally until all the information of the form is submitted to theweb server 14. - The authored
content module 24 processes the web page content and adds hidden form fields so that when user content is created, the events generated during the content creation can be associated with the content in a process to be described in greater detail below. In one embodiment, the authoredcontent module 24 adds a hidden “events observed” field to each user entry element of theweb page 27. - During an interaction with the
web page 11, a user enters content where appropriate, such as in the HTML form elements described above. During content creation, various events are generated and recorded by theevent observer module 26. Events may include mouse clicks, mouse moves, key strokes etc. At some stage during the user interaction, the client will submitcontent 29, e.g. via an HTML form element field, to theweb server 14. When the content is submitted, the hidden form fields, such as the “events observed” field, may be dynamically updated with recorded events from theevent observer module 26. Thus the content submission carries additional elements. The content submission process is illustrated in theflowchart 200 ofFIG. 3 . Atstep 201, the user enters content into the user entry elements, i.e. form fields, of the web page. During the entry of the content, one or more events are recorded by the event observer module (202). Atstep 203, the content and the events are submitted to theweb server 14. - The operation of the authored
content module 24 will now be described with reference to theflowchart 400 ofFIG. 4 . The authoredcontent module 24 is provided within theweb page content 11 in a manner that is invisible to the user. When a user interfaces with aweb page 11, in afirst step 401, the authoredcontent module 24 determines whether authored content tracking is enabled for that web page. If enabled, the authoredcontent module 24 then dynamically adds hidden input elements, such as “events observed” field to forms or other user content areas on the page (step 402) as will be described in greater detail below. The authoredcontent module 24 then registers callback with the event observer module 26 (step 403). At this stage, the authored content module is set to awaiting callbacks (step 404). Theevent observer module 26 observes events generated in a user interaction with theweb page 27 at theclient 18. Theevent observer module 26 records events generated within theweb browser 15, such as mouse clicks, mouse moves, text entries etc. When a user submits thecontent 29 to theweb server 14, a callback to the authoredcontent module 24 is triggered, (step 405). The authoredcontent module 24 then updates the events observed component of each user entry field (step 406) prior to submission of theweb page content 29 to theweb server 14. - In accordance with an embodiment of the invention, the authored
content module 24 can use the function below to add a hidden input field that will be updated dynamically. The example function discovers the form by id but forms can also be discovered by traversing the structure of the Document Object Model (DOM). -
function insertformtracker( ) { // Insert a hidden form element to send observed events // to the web-server. var x = document.getElementById(‘commentform’); if (!!x) { var y = document.createElement(‘input’); y.type = “hidden”; y.name = “EventsObserved”; // y.value will be updated live to be the events // seen by the event observer module during // content entry into this form y.value = “none”; x.appendChild(y); }; }; - For example, a web page may contain code for a page element “field1” as follows:
-
<span id=“span1”> <input name=“field1” id=“field1”> </span> - The “insert form tracker” function locates form containing the “field1” field and registers the “EventsObserved” field as a hidden field. A user may enter “sometext” in field1. The content may be submitted to the web server as follows:
-
field1=sometext&EventsObserved=mousemove.span1.x.120.y.310 - That is, the observed event data includes the event “mousemove.span1.x.120.y.310” which is submitted with the field1 content “sometext”. The field content and hidden field data are submitted to the
web server 14 where they are associated with the Interaction ID described above. - In a further example, the web page containing the “field1” field described above may be modified by the process described with reference to
FIG. 2 . In such an example, the modification may be provided as follows: -
<div id= “div8328”> <span id=“span1”> <input name=“field1” id=“field1”> </span> </div> - Following the previous example, when the user enters the same “sometext” content into field 1, the content submission may appear as follows:
-
field1=sometext&EventsObserved=mousemove.span1.div8328.x120.y.310 - That is, with event handlers registered for both span1 and div8328, and with the mousemove event (at x=120, y=310) seen by each event handler, each event handler will record an identifier for its DOM element into the data stream.
- It can be seen that the content submission carries extra information added dynamically by the authored
content module 24. The extra information includes the observed user interface events and the DOM element that each event was observed on (or some sample or subset of such). Because the events indicate the DOM element that each event was observed on, the events can be analyzed to infer the structure of the DOM. The page modification process described above allows the web server to alter the page structure by the creation of additional, usually non-visible, page elements and values. Page modification is useful in detecting malicious clients and preventing replay attacks. While a single mouse move event is shown, a person skilled in the art will readily understand that multiple events may be recorded and provided in the content submission. Additionally, an “events observed” field may be provided for each field in a form element. The data gathered in the “events observed” fields may be suitably encoded and, as mentioned, may be a sample or subset of the observed events. When down sampling of events is used, the function performing the down sampling may be generated uniquely per page request by the Page Modification Module. - In
FIG. 5 there is shown a process undertaken by theresponse processing module 19 of theweb server 14. Atstep 501, the content submission is received. Atstep 502, the interaction ID associated with the content submission is checked against the local data store. A matching Interaction ID indicates that the page content was altered by thepage modification module 21 in the modification process described above with reference toFIG. 2 . Thus, atstep 503, the response processing module replaces the default page with an altered page matching the page modification module's 21 changes. The DOM structure may be partially or fully included in the data sent in the “EventsObserved” field. In the previous example, the structure of the DOM page near field1 is indicated in the data along with the UI event “mousemove” that was observed: field1=sometext&EventsObserved=mousemove.span1.div8328.x.120.y.310. The event handlers on the elements with ids “span1” and “div8328” added these attribute values into the EventsObserved field. The response processing module has a record of the page (as modified) and its DOM structure is compared (step 504) with the structure indicated by the data inserted during event capturing which arrived with the content submission. Any attribute values inserted during page modification can also be compared at this stage. In the example, “div8328” may include a random number, 8328, that was added by the page modification module for a particular interaction. A mismatch in the DOM structure and/or attribute values may be indicative of a non-human user at theclient computer 18, such as an automated machine invoking an automated content submission perhaps using a previously recorded human web page interaction (a replay attack). For example, a malicious client may have replaced some or all of the web page content, thereby affecting either the DOM structure or the additional attribute values. Thus, the content submission may be ignored, tagged as spam or acontent confirmation process 507 can be initiated. The content confirmation process may include providing a dynamic CAPTCHA to theclient 18, as described in the Applicant's co-pending application Attorney Docket No. HAUSER006, the contents of which are explicitly incorporated herein by reference. - If the DOM structure comparison indicates a match, then event analysis may be optionally performed (step 506) to determine the likely event generator type, e.g. human, non-human etc. Further detail of event generator analysis is described in the Applicant's co-pending application Attorney Docket No. HAUSER001 referenced above. Alternatively or in addition, the events may be analyzed to correlate the number, timing and type of events with the actual content generated to determine if the content is most likely human generated, as described in the Applicant's co-pending application Attorney Docket No. HAUSER007 referenced above. If the event analysis indicates a likely non-human user, then the
content confirmation process 507 may be initiated. Otherwise, if the content submission is shown to be most likely human generated, then further processing of the content submission may follow. - In one embodiment, further processing of the content submission may include binding of the content, e.g. “sometext”, to the underlying events involved in the generation of the content. The bind operation may be initiated from the
web server 14 in response to theweb server 14 receiving thecontent submission 29. In one embodiment, described in more detail in the Applicant's co-pending patent application Attorney Docket No. HAUSER007 referenced above, a bind code may be created as a one-way hash of the concatenation of the hash of the content and/or the hash of the events generated in creating the content. The bind code may be associated with the content by a content ID field, by the interaction ID, or by some other suitable identifier. The binding operation may occur within theweb server 14 or may be provided by a third party server (not shown) in response to a bind request from theweb server 14. The binding of the events to the content allows additional services, such as the determination of various work metrics to be performed, as described in greater detail in the Applicant's co-pending patent application Attorney Docket No. HAUSER007 referenced above. - In the above described embodiments, the page modification may be provided as a way to change the event stream signature. This provides resistance to automated attacks on providing fake (or automated) event stream data. In the present embodiments, the web server has control over the whole web page and, properly configured, it can change the structure of the web page, on each request if required.
- The
event observer module 26 and the authoredcontent module 24 may be provided as code embedded in aweb page 11 from theweb server 14. Alternatively or in addition, theEvent Observer Module 26 and the AuthoredContent Module 24 may be provided as a link back to theweb server 14 or a third party server for the resource containing the code which the web browser will fetch as part of loading the web page. - In one embodiment, the web server 12 may include a
processor 61 operatively associated with amemory 62 as shown inFIG. 6 . Thememory 62 may store instructions that are executable on theprocessor 61. In addition, thememory 62 may provide elements of the data store for theresponse processing module 19. Aninstruction set 600 that may be executed on theevent server processor 61 is depicted in the flowchart ofFIG. 7 . Specifically, when executed, theinstruction set 600 allows the processor to receive a content submission from theclient browser 601. The content submission may include the content entered by the user and the events generated during the authoring of the content. The processor may then determine a DOM structure of the web page from the events that have been supplied 602 and compare the observed DOM structure with a stored DOM structure for the particular web page interaction, identified by the Interaction ID (step 603). The content submission may be received from a second processor, such as aprocessor 71 of the client browser shown inFIG. 8 , that may also be operatively associated with amemory 72. Thesecond processor 71 may provide the content submission through a suitable communications link 65. - Although embodiments of the present invention have been illustrated in the accompanied drawings and described in the foregoing description, it will be understood that the invention is not limited to the embodiments disclosed, but is capable of numerous rearrangements, modifications, and substitutions without departing from the spirit of the invention as set forth and defined by the following claims. For example, the capabilities of the invention can be performed fully and/or partially by one or more of the blocks, modules, processors or memories. Also, these capabilities may be performed in the current manner or in a distributed manner and on, or via, any device able to provide and/or receive information. Further, although depicted in a particular manner, various modules or blocks may be repositioned without departing from the scope of the current invention. Still further, although depicted in a particular manner, a greater or lesser number of modules and connections can be utilized with the present invention in order to accomplish the present invention, to provide additional known features to the present invention, and/or to make the present invention more efficient. Also, the information sent between various modules can be sent between the modules via at least one of a data network, the Internet, an Internet Protocol network, a wireless source, and a wired source and via plurality of protocols.
Claims (20)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/435,758 US9336191B2 (en) | 2009-05-05 | 2009-05-05 | System, method and computer readable medium for recording authoring events with web page content |
US13/287,431 US9524284B2 (en) | 2009-05-05 | 2011-11-02 | System, method and computer readable medium for recording authoring events with web page content |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/435,758 US9336191B2 (en) | 2009-05-05 | 2009-05-05 | System, method and computer readable medium for recording authoring events with web page content |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/287,431 Continuation US9524284B2 (en) | 2009-05-05 | 2011-11-02 | System, method and computer readable medium for recording authoring events with web page content |
Publications (2)
Publication Number | Publication Date |
---|---|
US20100287132A1 true US20100287132A1 (en) | 2010-11-11 |
US9336191B2 US9336191B2 (en) | 2016-05-10 |
Family
ID=43062946
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/435,758 Active 2032-05-27 US9336191B2 (en) | 2009-05-05 | 2009-05-05 | System, method and computer readable medium for recording authoring events with web page content |
US13/287,431 Active 2030-04-20 US9524284B2 (en) | 2009-05-05 | 2011-11-02 | System, method and computer readable medium for recording authoring events with web page content |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/287,431 Active 2030-04-20 US9524284B2 (en) | 2009-05-05 | 2011-11-02 | System, method and computer readable medium for recording authoring events with web page content |
Country Status (1)
Country | Link |
---|---|
US (2) | US9336191B2 (en) |
Cited By (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120198528A1 (en) * | 2011-02-01 | 2012-08-02 | Symbiotic Technologise Pty Ltd | Methods and systems to detect attacks on internet transactions |
US20130238691A1 (en) * | 2012-03-08 | 2013-09-12 | Alibaba Group Holding Limited | Validation associated with a form |
US20130290830A1 (en) * | 2012-04-30 | 2013-10-31 | Salesforce.Com, Inc. | System and method for managing a viewstate of a web application |
US20140006780A1 (en) * | 2012-06-27 | 2014-01-02 | Netauthority, Inc. | Transaction verification |
US9058478B1 (en) * | 2009-08-03 | 2015-06-16 | Google Inc. | System and method of determining entities operating accounts |
US20150339479A1 (en) * | 2014-05-23 | 2015-11-26 | Shape Security Inc. | Polymorphic Treatment of Data Entered At Clients |
US9210171B1 (en) | 2014-05-29 | 2015-12-08 | Shape Security, Inc. | Selectively protecting valid links to pages of a web site |
US9225737B2 (en) | 2013-03-15 | 2015-12-29 | Shape Security, Inc. | Detecting the introduction of alien content |
US9225729B1 (en) | 2014-01-21 | 2015-12-29 | Shape Security, Inc. | Blind hash compression |
US9275222B2 (en) | 2014-07-01 | 2016-03-01 | Shape Security, Inc. | Reliable selection of security countermeasures |
US9356954B2 (en) | 2014-01-20 | 2016-05-31 | Shape Security, Inc. | Intercepting and supervising calls to transformed operations and objects |
US9398071B1 (en) * | 2013-01-29 | 2016-07-19 | Amazon Technologies, Inc. | Managing page-level usage data |
US9405910B2 (en) | 2014-06-02 | 2016-08-02 | Shape Security, Inc. | Automatic library detection |
US9413776B2 (en) | 2012-02-17 | 2016-08-09 | Shape Security, Inc. | System for finding code in a data flow |
US9438625B1 (en) | 2014-09-09 | 2016-09-06 | Shape Security, Inc. | Mitigating scripted attacks using dynamic polymorphism |
US9479526B1 (en) | 2014-11-13 | 2016-10-25 | Shape Security, Inc. | Dynamic comparative analysis method and apparatus for detecting and preventing code injection and other network attacks |
US9529994B2 (en) | 2014-11-24 | 2016-12-27 | Shape Security, Inc. | Call stack integrity check on client/server systems |
US9602543B2 (en) | 2014-09-09 | 2017-03-21 | Shape Security, Inc. | Client/server polymorphism using polymorphic hooks |
WO2017105620A1 (en) * | 2015-12-17 | 2017-06-22 | Google Inc. | Browser attestation challenge and response system |
CN107203521A (en) * | 2016-03-16 | 2017-09-26 | 阿里巴巴集团控股有限公司 | Information processing method and device |
US9800602B2 (en) | 2014-09-30 | 2017-10-24 | Shape Security, Inc. | Automated hardening of web page content |
US9807113B2 (en) | 2015-08-31 | 2017-10-31 | Shape Security, Inc. | Polymorphic obfuscation of executable code |
US9813440B1 (en) | 2015-05-15 | 2017-11-07 | Shape Security, Inc. | Polymorphic treatment of annotated content |
US9824073B1 (en) * | 2011-03-31 | 2017-11-21 | Google Llc | Estimating effects of user interface changes on content item performance |
US9917850B2 (en) | 2016-03-03 | 2018-03-13 | Shape Security, Inc. | Deterministic reproduction of client/server computer state or output sent to one or more client computers |
US9954893B1 (en) | 2014-09-23 | 2018-04-24 | Shape Security, Inc. | Techniques for combating man-in-the-browser attacks |
US9986058B2 (en) | 2015-05-21 | 2018-05-29 | Shape Security, Inc. | Security systems for mitigating attacks from a headless browser executing on a client computer |
US10089216B2 (en) | 2014-06-30 | 2018-10-02 | Shape Security, Inc. | Automatically determining whether a page of a web site is broken despite elements on the page that may change |
US10129289B1 (en) | 2016-03-11 | 2018-11-13 | Shape Security, Inc. | Mitigating attacks on server computers by enforcing platform policies on client computers |
US10187408B1 (en) | 2014-04-17 | 2019-01-22 | Shape Security, Inc. | Detecting attacks against a server computer based on characterizing user interactions with the client computing device |
CN109344355A (en) * | 2018-09-26 | 2019-02-15 | 北京因特睿软件有限公司 | Automatic returning detection and Block- matching adaptive approach and device for Web evolution |
US10212130B1 (en) | 2015-11-16 | 2019-02-19 | Shape Security, Inc. | Browser extension firewall |
US10216488B1 (en) | 2016-03-14 | 2019-02-26 | Shape Security, Inc. | Intercepting and injecting calls into operations and objects |
US10230718B2 (en) | 2015-07-07 | 2019-03-12 | Shape Security, Inc. | Split serving of computer code |
US10298599B1 (en) | 2014-09-19 | 2019-05-21 | Shape Security, Inc. | Systems for detecting a headless browser executing on a client computer |
US10326790B2 (en) | 2016-02-12 | 2019-06-18 | Shape Security, Inc. | Reverse proxy computer: deploying countermeasures in response to detecting an autonomous browser executing on a client computer |
US10375026B2 (en) | 2015-10-28 | 2019-08-06 | Shape Security, Inc. | Web transaction status tracking |
US10567419B2 (en) | 2015-07-06 | 2020-02-18 | Shape Security, Inc. | Asymmetrical challenges for web security |
US10567363B1 (en) | 2016-03-03 | 2020-02-18 | Shape Security, Inc. | Deterministic reproduction of system state using seeded pseudo-random number generators |
CN111061478A (en) * | 2019-12-11 | 2020-04-24 | 政采云有限公司 | Page form modification method, device, equipment and readable storage medium |
US11106757B1 (en) * | 2020-03-30 | 2021-08-31 | Microsoft Technology Licensing, Llc. | Framework for augmenting document object model trees optimized for web authoring |
US11138289B1 (en) | 2020-03-30 | 2021-10-05 | Microsoft Technology Licensing, Llc | Optimizing annotation reconciliation transactions on unstructured text content updates |
US11176146B2 (en) * | 2011-03-14 | 2021-11-16 | Splunk Inc. | Determining indications of unique values for fields |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100287152A1 (en) | 2009-05-05 | 2010-11-11 | Paul A. Lipari | System, method and computer readable medium for web crawling |
US10303722B2 (en) | 2009-05-05 | 2019-05-28 | Oracle America, Inc. | System and method for content selection for web page indexing |
US9336191B2 (en) * | 2009-05-05 | 2016-05-10 | Suboti, Llc | System, method and computer readable medium for recording authoring events with web page content |
US8707158B2 (en) * | 2009-08-05 | 2014-04-22 | Microsoft Corporation | Customizing a form in a model-based system |
US8806627B1 (en) * | 2012-12-17 | 2014-08-12 | Emc Corporation | Content randomization for thwarting malicious software attacks |
CN103902581B (en) * | 2012-12-28 | 2017-12-08 | 腾讯科技(深圳)有限公司 | A kind of method and apparatus for the DOM node for removing the page |
US9307342B2 (en) | 2013-05-13 | 2016-04-05 | Pivotal Software, Inc. | Dynamic rendering for software applications |
US10803232B2 (en) * | 2013-06-06 | 2020-10-13 | International Business Machines Corporation | Optimizing loading of web page based on aggregated user preferences for web page elements of web page |
US9928526B2 (en) | 2013-12-26 | 2018-03-27 | Oracle America, Inc. | Methods and systems that predict future actions from instrumentation-generated events |
US9911143B2 (en) | 2013-12-26 | 2018-03-06 | Oracle America, Inc. | Methods and systems that categorize and summarize instrumentation-generated events |
CN104808913B (en) * | 2014-01-23 | 2019-08-06 | 腾讯科技(深圳)有限公司 | Event response method and device |
US10176153B1 (en) * | 2014-09-25 | 2019-01-08 | Amazon Technologies, Inc. | Generating custom markup content to deter robots |
CN107203595B (en) * | 2017-05-03 | 2021-11-30 | 北京海顿中科技术有限公司 | Method for dynamically generating web interface based on free form |
CN113282816A (en) * | 2020-02-20 | 2021-08-20 | 北京字节跳动网络技术有限公司 | Page operation processing method, device, equipment and storage medium |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6848108B1 (en) * | 1998-06-30 | 2005-01-25 | Microsoft Corporation | Method and apparatus for creating, sending, and using self-descriptive objects as messages over a message queuing network |
US20050154676A1 (en) * | 1998-12-04 | 2005-07-14 | Digital River, Inc. | Electronic commerce system method for detecting fraud |
US7051042B2 (en) * | 2003-05-01 | 2006-05-23 | Oracle International Corporation | Techniques for transferring a serialized image of XML data |
US20070239604A1 (en) * | 2006-04-10 | 2007-10-11 | O'connell Brian M | User-browser interaction-based fraud detection system |
US20080307220A1 (en) * | 2007-05-03 | 2008-12-11 | Tom Campbell | Virtual closed-circuit communications |
US20080307301A1 (en) * | 2007-06-08 | 2008-12-11 | Apple Inc. | Web Clip Using Anchoring |
US20100042573A1 (en) * | 2008-08-14 | 2010-02-18 | Tealeaf Technology, Inc. | Method and system for communication between a client system and a server system |
US7908647B1 (en) * | 2006-06-27 | 2011-03-15 | Confluence Commons, Inc. | Aggregation system |
US20110072116A1 (en) * | 2007-06-26 | 2011-03-24 | International Business Machines Corporation | Method and system for providing xml-based asynchronous and interactive feeds for web applications |
US8397275B1 (en) * | 2009-02-05 | 2013-03-12 | Google Inc. | Time-varying sequenced image overlays for CAPTCHA |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4208081B2 (en) * | 2004-12-27 | 2009-01-14 | インターナショナル・ビジネス・マシーンズ・コーポレーション | System, web server, method and program for adding personalized value to multiple websites |
US20080040473A1 (en) * | 2006-08-14 | 2008-02-14 | Microsoft Corporation | Enabling web analytics for interactive web applications |
US20080147456A1 (en) * | 2006-12-19 | 2008-06-19 | Andrei Zary Broder | Methods of detecting and avoiding fraudulent internet-based advertisement viewings |
US8131611B2 (en) * | 2006-12-28 | 2012-03-06 | International Business Machines Corporation | Statistics based method for neutralizing financial impact of click fraud |
US7895653B2 (en) * | 2007-05-31 | 2011-02-22 | International Business Machines Corporation | Internet robot detection for network distributable markup |
US7765236B2 (en) * | 2007-08-31 | 2010-07-27 | Microsoft Corporation | Extracting data content items using template matching |
US9224151B2 (en) * | 2008-06-18 | 2015-12-29 | Microsoft Technology Licensing, L.L.C. | Presenting advertisements based on web-page interaction |
US8175922B2 (en) * | 2008-10-31 | 2012-05-08 | Yahoo! Inc. | Dynamic in-page advertising |
US8311876B2 (en) * | 2009-04-09 | 2012-11-13 | Sas Institute Inc. | Computer-implemented systems and methods for behavioral identification of non-human web sessions |
US9336191B2 (en) * | 2009-05-05 | 2016-05-10 | Suboti, Llc | System, method and computer readable medium for recording authoring events with web page content |
-
2009
- 2009-05-05 US US12/435,758 patent/US9336191B2/en active Active
-
2011
- 2011-11-02 US US13/287,431 patent/US9524284B2/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6848108B1 (en) * | 1998-06-30 | 2005-01-25 | Microsoft Corporation | Method and apparatus for creating, sending, and using self-descriptive objects as messages over a message queuing network |
US20050154676A1 (en) * | 1998-12-04 | 2005-07-14 | Digital River, Inc. | Electronic commerce system method for detecting fraud |
US7051042B2 (en) * | 2003-05-01 | 2006-05-23 | Oracle International Corporation | Techniques for transferring a serialized image of XML data |
US20070239604A1 (en) * | 2006-04-10 | 2007-10-11 | O'connell Brian M | User-browser interaction-based fraud detection system |
US7908647B1 (en) * | 2006-06-27 | 2011-03-15 | Confluence Commons, Inc. | Aggregation system |
US20080307220A1 (en) * | 2007-05-03 | 2008-12-11 | Tom Campbell | Virtual closed-circuit communications |
US20080307301A1 (en) * | 2007-06-08 | 2008-12-11 | Apple Inc. | Web Clip Using Anchoring |
US20110072116A1 (en) * | 2007-06-26 | 2011-03-24 | International Business Machines Corporation | Method and system for providing xml-based asynchronous and interactive feeds for web applications |
US20100042573A1 (en) * | 2008-08-14 | 2010-02-18 | Tealeaf Technology, Inc. | Method and system for communication between a client system and a server system |
US8397275B1 (en) * | 2009-02-05 | 2013-03-12 | Google Inc. | Time-varying sequenced image overlays for CAPTCHA |
Cited By (72)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9058478B1 (en) * | 2009-08-03 | 2015-06-16 | Google Inc. | System and method of determining entities operating accounts |
US8312520B2 (en) * | 2011-02-01 | 2012-11-13 | Symbiotic Technologies Pty Ltd | Methods and systems to detect attacks on internet transactions |
USRE46158E1 (en) * | 2011-02-01 | 2016-09-20 | Threatmetrix Pty Ltd | Methods and systems to detect attacks on internet transactions |
US20120198528A1 (en) * | 2011-02-01 | 2012-08-02 | Symbiotic Technologise Pty Ltd | Methods and systems to detect attacks on internet transactions |
US11176146B2 (en) * | 2011-03-14 | 2021-11-16 | Splunk Inc. | Determining indications of unique values for fields |
US11860881B1 (en) | 2011-03-14 | 2024-01-02 | Splunk Inc. | Tracking event records across multiple search sessions |
US9824073B1 (en) * | 2011-03-31 | 2017-11-21 | Google Llc | Estimating effects of user interface changes on content item performance |
US9413776B2 (en) | 2012-02-17 | 2016-08-09 | Shape Security, Inc. | System for finding code in a data flow |
JP2015511038A (en) * | 2012-03-08 | 2015-04-13 | アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited | Form related validation |
TWI587679B (en) * | 2012-03-08 | 2017-06-11 | Alibaba Group Services Ltd | Form validation methods, devices and systems |
US20130238691A1 (en) * | 2012-03-08 | 2013-09-12 | Alibaba Group Holding Limited | Validation associated with a form |
US20170034314A1 (en) * | 2012-03-08 | 2017-02-02 | Alibaba Group Holding Limited | Validation associated with a form |
CN107451472A (en) * | 2012-03-08 | 2017-12-08 | 阿里巴巴集团控股有限公司 | Form validation methods, devices and systems |
WO2013134512A1 (en) * | 2012-03-08 | 2013-09-12 | Alibaba Group Holding Limited | Validation associated with a form |
US9444910B2 (en) * | 2012-03-08 | 2016-09-13 | Alibaba Group Holding Limited | Validation associated with a form |
US10122830B2 (en) * | 2012-03-08 | 2018-11-06 | Alibaba Group Holding Limited | Validation associated with a form |
CN103312664A (en) * | 2012-03-08 | 2013-09-18 | 阿里巴巴集团控股有限公司 | Form verification method, device and system |
US20130290830A1 (en) * | 2012-04-30 | 2013-10-31 | Salesforce.Com, Inc. | System and method for managing a viewstate of a web application |
US20140006780A1 (en) * | 2012-06-27 | 2014-01-02 | Netauthority, Inc. | Transaction verification |
US9398071B1 (en) * | 2013-01-29 | 2016-07-19 | Amazon Technologies, Inc. | Managing page-level usage data |
US9973519B2 (en) | 2013-03-15 | 2018-05-15 | Shape Security, Inc. | Protecting a server computer by detecting the identity of a browser on a client computer |
US9225737B2 (en) | 2013-03-15 | 2015-12-29 | Shape Security, Inc. | Detecting the introduction of alien content |
US9609006B2 (en) | 2013-03-15 | 2017-03-28 | Shape Security, Inc. | Detecting the introduction of alien content |
US9356954B2 (en) | 2014-01-20 | 2016-05-31 | Shape Security, Inc. | Intercepting and supervising calls to transformed operations and objects |
US9712561B2 (en) | 2014-01-20 | 2017-07-18 | Shape Security, Inc. | Intercepting and supervising, in a runtime environment, calls to one or more objects in a web page |
US10212137B1 (en) | 2014-01-21 | 2019-02-19 | Shape Security, Inc. | Blind hash compression |
US9225729B1 (en) | 2014-01-21 | 2015-12-29 | Shape Security, Inc. | Blind hash compression |
US10187408B1 (en) | 2014-04-17 | 2019-01-22 | Shape Security, Inc. | Detecting attacks against a server computer based on characterizing user interactions with the client computing device |
US9411958B2 (en) * | 2014-05-23 | 2016-08-09 | Shape Security, Inc. | Polymorphic treatment of data entered at clients |
US20150339479A1 (en) * | 2014-05-23 | 2015-11-26 | Shape Security Inc. | Polymorphic Treatment of Data Entered At Clients |
US9621583B2 (en) | 2014-05-29 | 2017-04-11 | Shape Security, Inc. | Selectively protecting valid links to pages of a web site |
US9210171B1 (en) | 2014-05-29 | 2015-12-08 | Shape Security, Inc. | Selectively protecting valid links to pages of a web site |
US9405910B2 (en) | 2014-06-02 | 2016-08-02 | Shape Security, Inc. | Automatic library detection |
US10089216B2 (en) | 2014-06-30 | 2018-10-02 | Shape Security, Inc. | Automatically determining whether a page of a web site is broken despite elements on the page that may change |
US9813444B2 (en) | 2014-07-01 | 2017-11-07 | Shape Security, Inc. | Reliable selection of security countermeasures |
US9275222B2 (en) | 2014-07-01 | 2016-03-01 | Shape Security, Inc. | Reliable selection of security countermeasures |
US9602543B2 (en) | 2014-09-09 | 2017-03-21 | Shape Security, Inc. | Client/server polymorphism using polymorphic hooks |
US9438625B1 (en) | 2014-09-09 | 2016-09-06 | Shape Security, Inc. | Mitigating scripted attacks using dynamic polymorphism |
US10868819B2 (en) | 2014-09-19 | 2020-12-15 | Shape Security, Inc. | Systems for detecting a headless browser executing on a client computer |
US10298599B1 (en) | 2014-09-19 | 2019-05-21 | Shape Security, Inc. | Systems for detecting a headless browser executing on a client computer |
US9954893B1 (en) | 2014-09-23 | 2018-04-24 | Shape Security, Inc. | Techniques for combating man-in-the-browser attacks |
US9800602B2 (en) | 2014-09-30 | 2017-10-24 | Shape Security, Inc. | Automated hardening of web page content |
US9479526B1 (en) | 2014-11-13 | 2016-10-25 | Shape Security, Inc. | Dynamic comparative analysis method and apparatus for detecting and preventing code injection and other network attacks |
USRE50024E1 (en) | 2014-11-24 | 2024-06-25 | Shape Security, Inc. | Call stack integrity check on client/server systems |
US9529994B2 (en) | 2014-11-24 | 2016-12-27 | Shape Security, Inc. | Call stack integrity check on client/server systems |
US9813440B1 (en) | 2015-05-15 | 2017-11-07 | Shape Security, Inc. | Polymorphic treatment of annotated content |
US10798202B2 (en) * | 2015-05-21 | 2020-10-06 | Shape Security, Inc. | Security systems for mitigating attacks from a headless browser executing on a client computer |
US10367903B2 (en) | 2015-05-21 | 2019-07-30 | Shape Security, Inc. | Security systems for mitigating attacks from a headless browser executing on a client computer |
US9986058B2 (en) | 2015-05-21 | 2018-05-29 | Shape Security, Inc. | Security systems for mitigating attacks from a headless browser executing on a client computer |
US10567419B2 (en) | 2015-07-06 | 2020-02-18 | Shape Security, Inc. | Asymmetrical challenges for web security |
US10567386B2 (en) | 2015-07-07 | 2020-02-18 | Shape Security, Inc. | Split serving of computer code |
US10230718B2 (en) | 2015-07-07 | 2019-03-12 | Shape Security, Inc. | Split serving of computer code |
US9807113B2 (en) | 2015-08-31 | 2017-10-31 | Shape Security, Inc. | Polymorphic obfuscation of executable code |
US11171925B2 (en) | 2015-10-28 | 2021-11-09 | Shape Security, Inc. | Evaluating and modifying countermeasures based on aggregate transaction status |
US10375026B2 (en) | 2015-10-28 | 2019-08-06 | Shape Security, Inc. | Web transaction status tracking |
US10212130B1 (en) | 2015-11-16 | 2019-02-19 | Shape Security, Inc. | Browser extension firewall |
US10826872B2 (en) | 2015-11-16 | 2020-11-03 | Shape Security, Inc. | Security policy for browser extensions |
US10402555B2 (en) * | 2015-12-17 | 2019-09-03 | Google Llc | Browser attestation challenge and response system |
CN108027857A (en) * | 2015-12-17 | 2018-05-11 | 谷歌有限责任公司 | browser authentication challenge and response system |
WO2017105620A1 (en) * | 2015-12-17 | 2017-06-22 | Google Inc. | Browser attestation challenge and response system |
US10326790B2 (en) | 2016-02-12 | 2019-06-18 | Shape Security, Inc. | Reverse proxy computer: deploying countermeasures in response to detecting an autonomous browser executing on a client computer |
US10567363B1 (en) | 2016-03-03 | 2020-02-18 | Shape Security, Inc. | Deterministic reproduction of system state using seeded pseudo-random number generators |
US10212173B2 (en) | 2016-03-03 | 2019-02-19 | Shape Security, Inc. | Deterministic reproduction of client/server computer state or output sent to one or more client computers |
US9917850B2 (en) | 2016-03-03 | 2018-03-13 | Shape Security, Inc. | Deterministic reproduction of client/server computer state or output sent to one or more client computers |
US10129289B1 (en) | 2016-03-11 | 2018-11-13 | Shape Security, Inc. | Mitigating attacks on server computers by enforcing platform policies on client computers |
US10447726B2 (en) | 2016-03-11 | 2019-10-15 | Shape Security, Inc. | Mitigating attacks on server computers by enforcing platform policies on client computers |
US10216488B1 (en) | 2016-03-14 | 2019-02-26 | Shape Security, Inc. | Intercepting and injecting calls into operations and objects |
CN107203521A (en) * | 2016-03-16 | 2017-09-26 | 阿里巴巴集团控股有限公司 | Information processing method and device |
CN109344355A (en) * | 2018-09-26 | 2019-02-15 | 北京因特睿软件有限公司 | Automatic returning detection and Block- matching adaptive approach and device for Web evolution |
CN111061478A (en) * | 2019-12-11 | 2020-04-24 | 政采云有限公司 | Page form modification method, device, equipment and readable storage medium |
US11106757B1 (en) * | 2020-03-30 | 2021-08-31 | Microsoft Technology Licensing, Llc. | Framework for augmenting document object model trees optimized for web authoring |
US11138289B1 (en) | 2020-03-30 | 2021-10-05 | Microsoft Technology Licensing, Llc | Optimizing annotation reconciliation transactions on unstructured text content updates |
Also Published As
Publication number | Publication date |
---|---|
US9336191B2 (en) | 2016-05-10 |
US20120047426A1 (en) | 2012-02-23 |
US9524284B2 (en) | 2016-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9336191B2 (en) | System, method and computer readable medium for recording authoring events with web page content | |
US9736177B2 (en) | Automated security testing | |
US10367903B2 (en) | Security systems for mitigating attacks from a headless browser executing on a client computer | |
US10057280B2 (en) | Methods and systems of detecting and analyzing correlated operations in a common storage | |
US9712560B2 (en) | Web page and web browser protection against malicious injections | |
US9507870B2 (en) | System, method and computer readable medium for binding authored content to the events used to generate the content | |
US8296722B2 (en) | Crawling of object model using transformation graph | |
US8438649B2 (en) | Streaming insertion of tokens into content to protect against CSRF | |
US20220253489A1 (en) | Detecting a change to the content of information displayed to a user of a website | |
Stock et al. | Protecting users against XSS-based password manager abuse | |
US20110321168A1 (en) | Thwarting cross-site request forgery (csrf) and clickjacking attacks | |
Dong et al. | Detecting cross site scripting vulnerabilities introduced by HTML5 | |
US9401807B2 (en) | Processing non-editable fields in web pages | |
Mishra et al. | Intelligent phishing detection system using similarity matching algorithms | |
CN108173814A (en) | Detection method for phishing site, terminal device and storage medium | |
US10242199B2 (en) | Application test using attack suggestions | |
US7360092B1 (en) | Marking and identifying web-based authentication forms | |
JP2019194832A (en) | System and method for detecting changes in web resources | |
Athanasopoulos et al. | Code-injection attacks in browsers supporting policies | |
CN117176383A (en) | Website anti-acquisition method and system based on script operation detection | |
Stock | Untangling the Web of Client-Side Cross-Site Scripting |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: LIPARI, PAUL A, TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HAUSER, ROBERT R;REEL/FRAME:022656/0430 Effective date: 20090501 Owner name: SUBOTI, LLC, TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HAUSER, ROBERT R;REEL/FRAME:022656/0430 Effective date: 20090501 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FEPP | Fee payment procedure |
Free format text: PAT HOLDER NO LONGER CLAIMS SMALL ENTITY STATUS, ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: STOL); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
AS | Assignment |
Owner name: APRFSH17, LLC, NEW YORK Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SUBOTI LLC;LIPARI, PAUL;REEL/FRAME:042120/0590 Effective date: 20170417 |
|
AS | Assignment |
Owner name: MOAT, INC., NEW YORK Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:APRFSH17, LLC;REEL/FRAME:043268/0275 Effective date: 20170717 |
|
AS | Assignment |
Owner name: ORACLE AMERICA, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MOAT, INC.;REEL/FRAME:043288/0748 Effective date: 20170719 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |