US20170126722A1 - Methods And Systems For Providing Security For Page Framing - Google Patents

Methods And Systems For Providing Security For Page Framing Download PDF

Info

Publication number
US20170126722A1
US20170126722A1 US15/261,781 US201615261781A US2017126722A1 US 20170126722 A1 US20170126722 A1 US 20170126722A1 US 201615261781 A US201615261781 A US 201615261781A US 2017126722 A1 US2017126722 A1 US 2017126722A1
Authority
US
United States
Prior art keywords
page
domain
framing
frame
framed
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
Application number
US15/261,781
Other versions
US10193914B2 (en
Inventor
Yoel Gluck
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Salesforce Inc
Original Assignee
Salesforce com Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Salesforce com Inc filed Critical Salesforce com Inc
Priority to US15/261,781 priority Critical patent/US10193914B2/en
Assigned to SALESFORCE.COM, INC. reassignment SALESFORCE.COM, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: GLUCK, YOEL
Publication of US20170126722A1 publication Critical patent/US20170126722A1/en
Priority to US16/259,953 priority patent/US10834115B2/en
Application granted granted Critical
Publication of US10193914B2 publication Critical patent/US10193914B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents
    • G06F17/30905
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2119Authenticating web pages, e.g. with suspicious links

Definitions

  • Embodiments of the invention relate generally to web application security. More particularly, embodiments of the mention relate to techniques for providing framing analysis.
  • Frame busting is the concept of trying to bust out of such framing by un-authorized pages.
  • the current standard approach is within a page that should not be framed, the browser checks to determine if it is framed, and if it is, it can be “busted” to a main page by setting window.location (or something similar) to a framed URL.
  • Click jacking is a way to trick the user into thinking he/she is clicking/typing on one object while he/she is actually interacting with another. For example, if the user opens a browser window to ‘evil.com’ that will have a label and a button next to it.
  • This iframe may have an opacity of 0 so it is hidden from the user, but still active (another approach it to make only parts of it visible with sizes and scrolling or using plugins that overlay above it). As the user moves the mouse over the button and clicks, he/she will actually click on the invisible iframe button.
  • FIG. 1 is an illustration of a configuration to attempt clickjacking.
  • FIG. 2 provides a conceptual illustration of framed pages.
  • FIG. 3 is a conceptual illustration of framed pages within a browser window (or tab).
  • FIG. 4 is a flow diagram of one embodiment of a technique to analyze framing and to employ safe frame busting utilizing a challenge request/response functionality.
  • FIG. 5 is a flow diagram of one embodiment of a technique to analyze framing and to employ safe frame busting.
  • FIG. 6 is a block diagram of a frame analyzing agent that may provide safe frame busting.
  • FIG. 7 is a block diagram of one embodiment of a computing system.
  • FIG. 1 is an illustration of a configuration to attempt clickjacking. This example illustrates how an attacker can have a page that looks like their own page with a button (e.g., “Don't Click”) that when clicked will actually create a different action than suggested by the image presented to a user.
  • a button e.g., “Don't Click”
  • a user may load page 150 , which may appear to be the desired page and which includes button 130 .
  • An attacker may overlay another pate 110 with button 120 directly over button 130 that causes an undesirable result, for example, clicking on 120 that is unknown to the user rather than taking the desired action which is clicking on 130 . This may be accomplished by framing page 110 with page 140 .
  • This clickjacking attack attempts to trick the user into performing a specified action in order to make the unknown request appear as a legitimate user request.
  • a multitenant database system utilizes tenant identifiers (IDs) within a multi-tenant environment to allow individual tenants to access their data while preserving the integrity of other tenant's data.
  • the multitenant database stores data for multiple client entities each identified by a tenant ID having one of one or more users associated with the tenant ID. Users of each of multiple client entities can only access data identified by a tenant ID associated with their respective client entity.
  • the multitenant database is a hosted database provided by an entity separate from the client entities, and provides on-demand and/or real-time database service to the client entities.
  • FIG. 2 provides a conceptual illustration of framed pages.
  • the example of FIG. 2 provides a conceptual illustration of allowed page framing and undesirable page framing.
  • the page frame checking and, if necessary, frame busing functionality may be provided as described herein.
  • Page 210 corresponds to a first domain (e.g., A.com) and frames a second page ( 230 , 240 ) from a different domain (e.g., CurrentPage.com).
  • a first domain e.g., A.com
  • CurrentPage.com e.g., CurrentPage.com
  • FIG. 2 in the case of 230 CurrentPage.com is properly framed by page 210
  • CurrentPage.com is not properly framed because for one customer certain framing may be allowed and for another customer framing may not be allowed.
  • Current browser technology does not support this level of page framing management granularity. Described herein are techniques to support this level of page framing management granularity.
  • a frame busting technique may be utilized to prevent the framing of page 240 by page 210 .
  • Page 250 corresponds to a different domain (e.g., evil.com) and frames another page ( 270 , 280 ) from a different domain (e.g., CurrentPage.com).
  • a different domain e.g., evil.com
  • CurrentPage.com e.g., CurrentPage.com
  • both case 270 and case 280 are not properly framed because, in these cases, both customers do not allow framing by evil.com.
  • Current browser technology does not support this level of page framing management granularity.
  • a frame busting technique may be utilized to prevent the framing of pages 270 and 280 by page 250 .
  • FIG. 3 is a conceptual illustration of framed pages within a browser window (or tab).
  • the example of FIG. 3 illustrates a top level page and three levels of framed pages. This is for example purposes only as any number of page framing levels may be supported using the techniques described herein.
  • Browser window/tab 300 may be any type of browser window/tab known in the art in which one or more pages may be rendered and presented to a user.
  • Top level page 310 e.g., a.com/b.html
  • Level 1 page 320 e.g., b.com/b.html
  • Level 2 page 330 e.g., c.com/c.html
  • Level 3 page 340 e.g., safe.com/safe.html
  • level 2 page 330 is framed by level 2 page 330 .
  • each page at each level may be analyzed to determine whether the framing is allowed. That is, each level of page framing attempted may be independently analyzed to determine whether the framing should be allowed. When framing that should not be allowed is identified, one or more frame busting strategies may be employed to prevent the attempted page framing that should not be allowed.
  • FIG. 4 is a flow diagram of one embodiment of a technique to analyze framing and to employ safe frame busting utilizing a challenge request/response functionality.
  • the functionality described with respect to FIG. 4 may provide framing analysis as well as necessary frame busting to a browser or other application through which pages are displayed to a user of a host computing system.
  • the browser (or other host system component) disables the page, 405 .
  • the browser (or other host system component) disables the page, 405 .
  • Disabling the page can be accomplished in various ways such as, for example, using cascading style sheets (CSS) to hideldisable the page. An even stronger approach would be to not even load the page until confirming framing status. Other techniques for disabling the page may also be utilized.
  • CSS cascading style sheets
  • the browser may check to see if the current page is framed, 410 . This can be done, for example, by using browser Document Object Model (DOM) objects to compare the “top” object and the “self” object. If the current page is not framed, then the “self” object is the same object as the “top” object and therefore will be equal. If the current page is framed, then the “self” object and the “top” object will not be equal.
  • DOM browser Document Object Model
  • the page may be enabled, 415 . Once the page is enabled, the browser may render the page and provide the contents to the user. If the page is framed, 410 , further frame authorization checking may be performed.
  • the browser may retrieve authorized domains for a session, 420 .
  • the browser may maintain, or have access to, one or more policies that describe domains that may be framed, domains that may perform framing, and/or other information related to authorized framing. Further, there may exist hierarchical policies that may be enforced by the browser when analyzing a page having frames. The techniques described herein are described in terms of domains (or pages), but are also applicable to ports, schema, etc.
  • some or all of the framing authorization information may be obtained for the current customer/entity (e.g., a.com), 425 .
  • the multitenant environment may maintain the information on, for example, a database ( 430 ) or any other appropriate storage mechanism.
  • the browser operates to inspect each level in the hierarchy that is framing the current page and confirm the domains/pages in each level are authorized to be in that position of the hierarchy of framing for the current framed page.
  • the framing authorization must confirm based on one or more policies (relating to safe.com/safe.html) that 1) c.com/c.html is authorized to be Level 2 ; 2) b.com/b.html is authorized to be Level 1 ; and 3) a.com/a.html is authorized to be Top Level.
  • framing authorization is performed for each level of the frame hierarchy.
  • the framing authorization fails. If there are some authorized domains/pages for the level, that framing must be verified against the authorized policy.
  • One approach is to loop through the list of allowed domains/pages and for each, launch a Domain/page confirmation process as described below.
  • Another approach is to use a parameter such as a Uniform Resource Locator (URL) parameter that will provide guidance into which domain/page form the list should be used to confirm for this level.
  • URL Uniform Resource Locator
  • the domain/page confirmation process is intended to confirm that a specific level in the hierarchy (e.g., L 1 in FIG. 3 ) is indeed a specific domain/page that is authorized to be at that level of the framing for current page.
  • a specific level in the hierarchy e.g., L 1 in FIG. 3
  • the current page is safe.com/safe.html (L 3 ) and the domain/page confirmation process must confirm that Level 1 in the hierarchy (L 1 ) is indeed b.com/b.html.
  • the page at L 3 launches an invisible iframe with a predefined URL at L 1 's domain.
  • the URL can be predefined in the policy, configuration locations, dynamically defined via secure communication, etc.
  • b.com/testFraminghtml Assuming L 1 is the authorized domain, and because the testFraming.html is loaded form that same domain, it should be able to confirm if L 1 is indeed from that domain/page because of the Same Origin Policy that browsers enforce.
  • the page will securely send a message back to the iframe (e.g., corresponding to L 3 ) letting the iframe know that this level domain/page confirmation was successful.
  • a secure message post mechanism may be used, for example the PostMessage in HTML5. Other secure messaging techniques may also be used.
  • a specific domain/page e.g., b.com
  • L 1 of FIG. 3 the level of framing
  • L 3 the new iframe to confirm this, to the framed page (e.g., L 3 of FIG. 3 ).
  • a challenge request/response method or any other cryptographic approach may be utilized to get an answer securely from the frame.
  • the confirmation may use secure message posting between domains on the client side (e.g., using HTML 5).
  • the browser may create a challenge that may be encrypted, 435 .
  • An iframe for the appropriate level in the hierarchy is created and loaded from a.com, 440 .
  • the iframe is used to check the framing domain, 445 .
  • a challenge response answer is returned, 450 . If the challenge response passes validation, 460 , then the framing of the page is authorized, 480 , for the current level in the hierarchy.
  • the page should be enabled. If the framing is authorized, 480 , then the page is enabled, 415 . If the framing is not authorized, 480 , then frame-busting measures may be taken 490 . The frame busting may be, for example, keeping the page disabled, or individual frames may be addressed, for example, by preventing faming while allowing the remainder of the page and/or frames to be rendered. Other results may also be supported. If the challenge response is not correct, 460 , then the answer is ignored 470 .
  • FIG. 5 is a flow diagram of one embodiment of a technique to analyze framing and to employ safe frame busting.
  • the functionality described with respect to FIG. 5 may provide framing analysis as well as necessary frame busting to a browser or other application through which pages are displayed to a user of a host computing system.
  • a page from a first domain attempts to frame from a second domain (safe.com), 500 .
  • the page is disabled, 505 . That is, the framed page (safe.com) is disabled within the framing page (a.com), 510 . Any technique known in the art to disable the page may be utilized for this purpose.
  • the page may be enabled, 599 . Once the page is enabled, 599 , the browser may render the page and provide the contents to the user. If the page is framed, 515 , further frame authorization checking may be performed.
  • the browser may retrieve authorized domains for a session, 520 .
  • the browser may maintain, or have, access to, one or more policies that describe domains that may be framed, domains that may perform framing, and/or other information related to authorized framing. Further, there may exist hierarchical policies that may be enforced by the browser when analyzing a page having frames.
  • some or all of the framing authorization information may be obtained for the current customer/entity (e.g., safe.com), 525 .
  • the multitenant environment may maintain the information on, for example, a database ( 530 ) or any other appropriate storage mechanism.
  • the browser operates to inspect each level in the hierarchy that is framing the current page and confirm the domains/pages in each level are authorized to be in that position of the hierarchy of framing for the current framed page.
  • the browser may create a confirmation frame and may store a pointer frame, 540 .
  • the confirmation frame may have the same domain as the top level frame (a.com) and be framed within the frame to be checked (safe.com), 545 .
  • the confirmation frame is used to check the framing domain, 550 .
  • the test framing page creates another iframe in its' own DOM tree setting the URL to the domain to which the answer should be sent, 565 , and adding the result data to the URL. For example, if b.com/testFraming.html attempts to tell L 3 (from safe.com) that the result of checking L 1 was successful. It can create an iframe setting the URL to
  • the new iframe loaded from the same domain as L 3 will then call directly into a function implemented on L 3 (for example, using parent.parent.ConfirmFunction( ) and not traversing the tree in other ways, because this ensures calling directly the grandparent which is the correct L 3 frame).
  • This function will get parameters such as level, result, and parent.
  • Level is the level parameter it got in the URL, which will let the L 3 know which level was confirmed.
  • Result is the result of the authorization check weather it was indeed the domain/page we thought it was.
  • Parent is the “parent pointer” of the testFramingResult frame. This will be used to compare to the frame L 3 created, confirming we are getting the response from the correct grandchild and not from a rouge grandchild that was created just to spoof a result.
  • the iframe creates a confirmation result frame, 560 .
  • the inner frame from the domain being tested (safe.com) sends the result frame to the outer frame from the same domain, 570 .
  • the result frame passes its parent frame pointer to the outer frame, 575 . If the parent pointer does not match the original pointer stored when the conformation frame was created, 580 , the result frame is ignored, 585 . If the parent pointer matches the stored pointer, 580 , and framing is not authorized, 590 , frame busting is employed, 595 . If the parent pointer is the same as the stored pointer, 580 , and framing is authorized, 590 , the page is enabled, 599 .
  • Protection against replay attacks may be provided using solutions such as time stamps, or challenge response. Also, based on the method used to send the messages, signature and/or encryption solutions can be used to protect against forged requests and forged responses (An example can be HMAC). In one embodiment, if a policy might allow multiple hierarchy trees, a parameter, such as a URL parameter, may be used to help identify the hierarchy to be used Another option will be to try every possible hierarchy form the policy.
  • a policy can have an option to allow a branch of hierarchy that does not care what is above it, for example, you can have A->B>login and allow A to be framed under any other hierarchy. In this case, inspection is performed only for framing up to A. Another example is to allow anything to frame login.
  • a policy can have wild cards for specific levels: for example in the current level: allow any domain, allow pages that start with, allow any of a list of domains or list of pages, etc.
  • the confirmation process can require other data such as schema (i.e., http, haps), port, headers, URL parameters (including values after the hash sign), etc.
  • a detection engine can try and analyze standard user behavior with clicks and mouse on the page, and alert for deviations. For example, if users usually wait on the page for a few seconds before clicking, approach the buttons from bottom, click on areas of the button based on location and approach, etc. Then when the detection engine detects a deviation, the action may be blocked, a network administrator may be alerted, a challenge may be provided to the user to confirm the action, etc.
  • some randomness can be introduced into the mix helping detect un-usual behavior. For example, if a specific user usually clicks within an area of the button even when it is randomly moved in direction, then for that user when an unusual location is detected, close to the button, or at the original location, etc., it might be an attack and the user clicked on it without seeing it.
  • a challenge can be presented to the user with tasks such as CAPTHCA, visible keypads with random numbers for them to click on (Server will prompt the user with a value i.e. 527 and the user will have to click on the visible pad to enter that value), enter their password, introduce randomness to the original object locations, etc.
  • tasks such as CAPTHCA, visible keypads with random numbers for them to click on (Server will prompt the user with a value i.e. 527 and the user will have to click on the visible pad to enter that value), enter their password, introduce randomness to the original object locations, etc.
  • FIG. 6 is a block diagram of a frame analyzing agent that may provide safe frame busting.
  • the functionality of frame analyzing agent 600 may be provided by a browser application, a server application, a detection engine, or any combination thereof.
  • Frame analyzing agent 600 may provide the functionality described with respect to FIG. 4 and/or FIG. 5 .
  • Frame analyzing agent 600 includes control logic 610 , which implements logical functional control to direct operation of frame analyzing agent 600 , and/or hardware associated with directing operation of frame analyzing agent 600 .
  • Logic may be hardware logic circuits and/or software routines.
  • frame analyzing agent 500 includes one or more applications 612 , which represent code sequence and/or programs that provide instructions to control logic 610 .
  • Frame analyzing agent 600 includes memory 614 , which represents a memory device and/or access to a memory resource for storing data and/or instructions.
  • Memory 614 may include memory local to frame analyzing agent 600 , as well as, or alternatively, including memory of the host system on which frame analyzing agent 600 resides.
  • Frame analyzing agent 600 also includes one or more interfaces 616 , which represent access interfaces to/from (an input/output interface) frame analyzing agent 600 with regard to entities (electronic or human) external to frame analyzing agent 600 .
  • Frame analyzing agent 600 also includes frame analyzing engine 620 , which represents one or more functions or module that enable frame analyzing agent 600 to provide the frame analysis services as described above.
  • the example of FIG. 6 provides several modules that may be included in frame analyzing engine 620 ; however, different and/or additional modules may also be included.
  • Example modules that may be involved in providing the frame analyzing functionality include page retriever 630 , page disabler 640 , frame tester 650 , hierarchy tester 660 , encryption module 670 and page enabler 680 . Each of these modules may further include other sub-modules to provide other functions.
  • a module refers to routine, a subsystem, logic circuit, microcode, etc., whether implemented in hardware, software, firmware or some combination thereof.
  • Page retriever 630 operates to retrieve pages to be displayed by a browser.
  • page retriever 630 may operate on a URL or other identifier to retrieve a page to be displayed.
  • Page disabler 640 operates to disable pages until frame checking is completed. In one embodiment, page disabler 640 disables all pages retrieved by page retriever 630 until other modules of frame analyzing engine 620 can complete framing analysis as described herein.
  • Frame tester 650 operates to perform one or more frame testing techniques as described herein. In one embodiment, frame tester 650 operates to determine whether any pages are framed (e.g., 410 , 515 ). Frame tester 650 may provide additional functionality as well, for example, if frames are detected, providing information about the frames.
  • Hierarchy tester 660 may operate to analyze frame hierarchies, using one or more of the techniques described herein (e.g., FIG. 4 , FIG. 5 ).
  • Hierarchy tester 660 may utilize, for example, the SOP technique described above, the challenge request/response technique described above, and/or the secure message post technique described above, or any combination thereof.
  • Encryption module 670 may operate to provide encryption functionality as necessary to hierarchy tester 660 .
  • encryption module 670 may be utilized when a challenge request/response technique is used.
  • encryption module 670 may be absent from frame analyzing engine 620 .
  • Page enabler 680 operates to enable the pave if all framing is authorized, or if no framing is detected.
  • FIG. 7 is a block diagram of one embodiment of a computing system.
  • the computing system illustrated in FIG. 7 is intended to represent a range of electronic systems (either wired or wireless) including, for example, desktop computer systems, laptop computer systems, cellular telephones, personal digital assistants (PDAs) including cellular-enabled PDAs, set top boxes.
  • Alternative electronic systems may include more, fewer and/or different components.
  • Computing system 700 includes bus 705 or other communication device to communicate information, and processor 710 coupled to bus 705 that may process information. While computing system 700 is illustrated with a single processor, computing system 700 may include multiple processors and/or co-processors. Computing system 700 further may include random access memory (RAM) or other dynamic storage device 720 (referred to as memory), coupled to bus 705 and may store information and instructions that may be executed by processor 710 . Memory 720 may also be used to store temporary variables or other intermediate information during execution of instructions by processor 710 .
  • RAM random access memory
  • memory 720 may also be used to store temporary variables or other intermediate information during execution of instructions by processor 710 .
  • Computing system 700 may also include read only memory (ROM) and/or other static storage device 730 coupled to bus 705 that may store static information and instructions for processor 710 .
  • Data storage device 740 may be coupled to bus 705 to store information and instructions.
  • Data storage device 740 such as a magnetic disk or optical disc and corresponding drive may be coupled to computing system 700 .
  • Computing system 700 may also be coupled via bus 705 to display device 750 , such as a cathode ray tube (CRT) or liquid crystal display (LCD), to display information to a user.
  • display device 750 such as a cathode ray tube (CRT) or liquid crystal display (LCD)
  • Alphanumeric input device 760 may be coupled to bus 705 to communicate information and command selections to processor 710 .
  • cursor control 770 such as a mouse, a trackball, or cursor direction keys to communicate direction information and command selections to processor 710 and to control cursor movement on display 750 .
  • Computing system 700 further may include network interface(s) 780 to provide access to a network, such as a local area network.
  • Network interface(s) 780 may include, for example, a wireless network interface having antenna 785 , which may represent one or more antenna(e).
  • Network interface(s) 780 may also include, for example, a wired network interface to communicate with remote devices via network cable 787 , which may be, for example, an Ethernet cable, a coaxial cable, a fiber optic cable, a serial cable, or a parallel cable.
  • network interface(s) 780 may provide access to a local area network, for example, by conforming to IEEE 802.11b and/or IEEE 802.11g standards, and/or the wireless network interface may provide access to a personal area network, for example, by conforming to Bluetooth standards. Other wireless network interfaces and/or protocols can also be supported.
  • Computing system 700 may operate to execute a browser application that may perform frame checking as described herein.
  • the browser application may also function to generate graphical output to be displayed to a user of computing system 700 .
  • the browser as well as other applications, may be implemented as instructions that are executed by processor(s) 710 and/or other computing elements of electronic system 700 .
  • the instructions may be stored in memory 720 prior to and/or during execution.
  • Instructions are provided to memory from a storage device, such as magnetic disk, a read-only memory (ROM) integrated circuit, CD-ROM, DVD, via a remote connection (e.g., over a network via network interface 230 ) that is either wired or wireless providing access to one or more electronically-accessible media, etc.
  • a storage device such as magnetic disk, a read-only memory (ROM) integrated circuit, CD-ROM, DVD
  • a remote connection e.g., over a network via network interface 230
  • hard-wired circuitry can be used in place of or in combination with software instructions.
  • execution of sequences of instructions is not limited to any specific combination of hardware circuitry and software instructions.
  • a computer-readable medium includes any mechanism that provides content (e.g., computer executable instructions) in a form readable by an electronic device (e.g., a computer, a personal digital assistant, a cellular telephone).
  • a computer-readable medium may include read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; etc.
  • IEEE 802.11b corresponds to IEEE Std. 802.11b-1999 entitled “Local and Metropolitan Area Networks, Part 11 : Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications: Higher-Speed Physical Layer Extension in the 2.4 GHz Band,” approved Sep. 16, 1999 as well as related documents.
  • IEEE 802.11g corresponds to IEEE Std. 802.11g-2003 entitled “Local and Metropolitan Area Networks, Part 11 : Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications. Amendment 4 : Further Higher Rate Extension in the 2.4 GHz Band, approved Jun. 27, 2003 as well as related documents.
  • Bluetooth protocols are described in “Specification of the Bluetooth System: Core, Version 1.1,” published Feb. 22, 2001 by the Bluetooth Special Interest Group, Inc. Associated as well as previous or subsequent versions of the Bluetooth standard may also be supported.

Abstract

Techniques for analyzing a page to be presented by a browser running on a computing platform. The page is disabled. The page is tested to determine if the page is framed by a second page. The page is enabled if the testing indicates that the page is not framed by a second page. Each level of a hierarchy of framed pages is inspected to determine whether each level is authorized. The page is enabled if the inspecting indicates that each level of the hierarchy of framed pages is authorized.

Description

    CLAIM OF PRIORITY
  • This United States continuation patent application is related to, and claims priority to U.S. patent application Ser. No. 13/168,444 filed Jun. 24, 2014, entitled “METHODS AND SYSTEMS FOR PROVIDING SECURITY FOR PAGE FRAMING,” Attorney Docket No. 446US, and is further related to, and claims priority to U.S. Provisional Patent Application No. 61/358,544 filed Jun. 25, 2010, entitled “METHODS AND SYSTEMS FOR PROVIDING SECURITY IN AN ON-DEMAND SERVICE ENVIRONMENT,” Attorney Docket No. 446PROV, the entire contents of which are incorporated herein by reference.
  • COPYRIGHT NOTICE
  • A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
  • FIELD OF THE INVENTION
  • Embodiments of the invention relate generally to web application security. More particularly, embodiments of the mention relate to techniques for providing framing analysis.
  • BACKGROUND
  • The subject matter discussed in the background section should not be assumed to be prior art merely as a result of its mention in the background section. Similarly, a problem mentioned in the background section or associated with the subject matter of the background section should not be assumed to have been previously recognized in the prior art. The subject matter in the background section merely represents different approaches, which in and of themselves may also be inventions.
  • Various strategies exist for an attacker to attempt to gain unauthorized access and perform unauthorized actions on web sites. Some attackers will try to load pages from within browser frames and iframes under their page. This technique may be used in clickjacking, but there might be other reasons and over time there might be specific vulnerabilities they might try to exploit. Frame busting is the concept of trying to bust out of such framing by un-authorized pages. The current standard approach is within a page that should not be framed, the browser checks to determine if it is framed, and if it is, it can be “busted” to a main page by setting window.location (or something similar) to a framed URL.
  • Click jacking is a way to trick the user into thinking he/she is clicking/typing on one object while he/she is actually interacting with another. For example, if the user opens a browser window to ‘evil.com’ that will have a label and a button next to it. In addition the window may also have another iframe with, for example, src=<bad_action_url>. This iframe may have an opacity of 0 so it is hidden from the user, but still active (another approach it to make only parts of it visible with sizes and scrolling or using plugins that overlay above it). As the user moves the mouse over the button and clicks, he/she will actually click on the invisible iframe button.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • In the following drawings like reference numbers are used to refer to like elements. Although the following figures depict various examples of the invention, the invention is not limited to the examples depicted in the figures.
  • FIG. 1 is an illustration of a configuration to attempt clickjacking.
  • FIG. 2 provides a conceptual illustration of framed pages.
  • FIG. 3 is a conceptual illustration of framed pages within a browser window (or tab).
  • FIG. 4 is a flow diagram of one embodiment of a technique to analyze framing and to employ safe frame busting utilizing a challenge request/response functionality.
  • FIG. 5 is a flow diagram of one embodiment of a technique to analyze framing and to employ safe frame busting.
  • FIG. 6 is a block diagram of a frame analyzing agent that may provide safe frame busting.
  • FIG. 7 is a block diagram of one embodiment of a computing system.
  • DETAILED DESCRIPTION
  • FIG. 1 is an illustration of a configuration to attempt clickjacking. This example illustrates how an attacker can have a page that looks like their own page with a button (e.g., “Don't Click”) that when clicked will actually create a different action than suggested by the image presented to a user.
  • In the example of FIG. 1, a user may load page 150, which may appear to be the desired page and which includes button 130. An attacker may overlay another pate 110 with button 120 directly over button 130 that causes an undesirable result, for example, clicking on 120 that is unknown to the user rather than taking the desired action which is clicking on 130. This may be accomplished by framing page 110 with page 140. This clickjacking attack attempts to trick the user into performing a specified action in order to make the unknown request appear as a legitimate user request.
  • In addition to the problems described above in a cloud based multitenant environment there is a need to allow framing of some pages for some customers. However, it is desirable to have the capability to only allow clients of that customer to have their page framed and only by the hierarchy of domains/pages they want. One prior approach to checking the framing domain is with referrer header. However, that may not be secure enough and also does not allow for specific URL and for full hierarchy authorization.
  • In one embodiment, a multitenant database system utilizes tenant identifiers (IDs) within a multi-tenant environment to allow individual tenants to access their data while preserving the integrity of other tenant's data. In one embodiment, the multitenant database stores data for multiple client entities each identified by a tenant ID having one of one or more users associated with the tenant ID. Users of each of multiple client entities can only access data identified by a tenant ID associated with their respective client entity. In one embodiment, the multitenant database is a hosted database provided by an entity separate from the client entities, and provides on-demand and/or real-time database service to the client entities.
  • FIG. 2 provides a conceptual illustration of framed pages. The example of FIG. 2 provides a conceptual illustration of allowed page framing and undesirable page framing. The page frame checking and, if necessary, frame busing functionality may be provided as described herein.
  • Page 210 corresponds to a first domain (e.g., A.com) and frames a second page (230, 240) from a different domain (e.g., CurrentPage.com). In the example of FIG. 2, in the case of 230 CurrentPage.com is properly framed by page 210, while in the case of 240, CurrentPage.com is not properly framed because for one customer certain framing may be allowed and for another customer framing may not be allowed. In a multitenant environment, for example, different customers or organizations may have different framing policies and/or framing needs. Current browser technology does not support this level of page framing management granularity. Described herein are techniques to support this level of page framing management granularity. In one embodiment, a frame busting technique may be utilized to prevent the framing of page 240 by page 210.
  • Page 250 corresponds to a different domain (e.g., evil.com) and frames another page (270, 280) from a different domain (e.g., CurrentPage.com). In the example of FIG. 2, both case 270 and case 280 are not properly framed because, in these cases, both customers do not allow framing by evil.com. Current browser technology does not support this level of page framing management granularity. In one embodiment, a frame busting technique may be utilized to prevent the framing of pages 270 and 280 by page 250.
  • FIG. 3 is a conceptual illustration of framed pages within a browser window (or tab). The example of FIG. 3 illustrates a top level page and three levels of framed pages. This is for example purposes only as any number of page framing levels may be supported using the techniques described herein.
  • Browser window/tab 300 may be any type of browser window/tab known in the art in which one or more pages may be rendered and presented to a user. Top level page 310 (e.g., a.com/b.html) is the main top level page 310. In the example of FIG. 3, Level 1 page 320 (e.g., b.com/b.html) is framed by top level page 310. Level 2 page 330 (e.g., c.com/c.html) is framed by Level 1 page 320. Level 3 page 340 (e.g., safe.com/safe.html) is framed by level 2 page 330.
  • In the description of the page framing management techniques described herein, the framing of each page at each level may be analyzed to determine whether the framing is allowed. That is, each level of page framing attempted may be independently analyzed to determine whether the framing should be allowed. When framing that should not be allowed is identified, one or more frame busting strategies may be employed to prevent the attempted page framing that should not be allowed.
  • FIG. 4 is a flow diagram of one embodiment of a technique to analyze framing and to employ safe frame busting utilizing a challenge request/response functionality. The functionality described with respect to FIG. 4 may provide framing analysis as well as necessary frame busting to a browser or other application through which pages are displayed to a user of a host computing system.
  • The browser (or other host system component) disables the page, 405. Thus, even if the browser fails to detect and prevent framing, if the page is disabled, an attacker will not be able to use the page for a click-jacking attack or other attacks. Disabling the page can be accomplished in various ways such as, for example, using cascading style sheets (CSS) to hideldisable the page. An even stronger approach would be to not even load the page until confirming framing status. Other techniques for disabling the page may also be utilized.
  • The browser may check to see if the current page is framed, 410. This can be done, for example, by using browser Document Object Model (DOM) objects to compare the “top” object and the “self” object. If the current page is not framed, then the “self” object is the same object as the “top” object and therefore will be equal. If the current page is framed, then the “self” object and the “top” object will not be equal.
  • If the page is not framed, 410, then the page may be enabled, 415. Once the page is enabled, the browser may render the page and provide the contents to the user. If the page is framed, 410, further frame authorization checking may be performed.
  • The browser may retrieve authorized domains for a session, 420. In one embodiment, the browser may maintain, or have access to, one or more policies that describe domains that may be framed, domains that may perform framing, and/or other information related to authorized framing. Further, there may exist hierarchical policies that may be enforced by the browser when analyzing a page having frames. The techniques described herein are described in terms of domains (or pages), but are also applicable to ports, schema, etc.
  • In one embodiment, some or all of the framing authorization information may be obtained for the current customer/entity (e.g., a.com), 425. The multitenant environment may maintain the information on, for example, a database (430) or any other appropriate storage mechanism. In one embodiment, the browser operates to inspect each level in the hierarchy that is framing the current page and confirm the domains/pages in each level are authorized to be in that position of the hierarchy of framing for the current framed page.
  • Referring back to the example of FIG. 3, the framing authorization must confirm based on one or more policies (relating to safe.com/safe.html) that 1) c.com/c.html is authorized to be Level 2; 2) b.com/b.html is authorized to be Level 1; and 3) a.com/a.html is authorized to be Top Level. In one embodiment, framing authorization is performed for each level of the frame hierarchy.
  • If the policy does not allow any domain/page at a particular level, the framing authorization fails. If there are some authorized domains/pages for the level, that framing must be verified against the authorized policy. One approach is to loop through the list of allowed domains/pages and for each, launch a Domain/page confirmation process as described below. Another approach is to use a parameter such as a Uniform Resource Locator (URL) parameter that will provide guidance into which domain/page form the list should be used to confirm for this level.
  • The domain/page confirmation process is intended to confirm that a specific level in the hierarchy (e.g., L1 in FIG. 3) is indeed a specific domain/page that is authorized to be at that level of the framing for current page. For example, in FIG. 3, the current page is safe.com/safe.html (L3) and the domain/page confirmation process must confirm that Level 1 in the hierarchy (L1) is indeed b.com/b.html.
  • In one embodiment, the page at L3 for example, launches an invisible iframe with a predefined URL at L1's domain. The URL can be predefined in the policy, configuration locations, dynamically defined via secure communication, etc. For example, b.com/testFraminghtml. Assuming L1 is the authorized domain, and because the testFraming.html is loaded form that same domain, it should be able to confirm if L1 is indeed from that domain/page because of the Same Origin Policy that browsers enforce.
  • When enforcing the Same Origin Policy, if the pages are indeed from the same domain, the testFraming.html frame can access the page information of L1 and check if it is an allowed framing page (e.g., with a statement like “parent.parent.parent.location.href==$PAGE”). If it is not the same domain it will fail to get the page information. In one embodiment, the page will securely send a message back to the iframe (e.g., corresponding to L3) letting the iframe know that this level domain/page confirmation was successful. In one embodiment, a secure message post mechanism may be used, for example the PostMessage in HTML5. Other secure messaging techniques may also be used.
  • After checking if a specific domain/page (e.g., b.com) is allowed to be in that level of framing (e.g., L1 of FIG. 3) for the current page (e.g., L3) the browser should securely send the result of that check back, form the new iframe to confirm this, to the framed page (e.g., L3 of FIG. 3). There are multiple ways to do this. In one embodiment, a challenge request/response method or any other cryptographic approach may be utilized to get an answer securely from the frame. As another example, the confirmation may use secure message posting between domains on the client side (e.g., using HTML 5).
  • The browser may create a challenge that may be encrypted, 435. An iframe for the appropriate level in the hierarchy is created and loaded from a.com, 440. The iframe is used to check the framing domain, 445. A challenge response answer is returned, 450. If the challenge response passes validation, 460, then the framing of the page is authorized, 480, for the current level in the hierarchy.
  • If all levels were successful, the page should be enabled. If the framing is authorized, 480, then the page is enabled, 415. If the framing is not authorized, 480, then frame-busting measures may be taken 490. The frame busting may be, for example, keeping the page disabled, or individual frames may be addressed, for example, by preventing faming while allowing the remainder of the page and/or frames to be rendered. Other results may also be supported. If the challenge response is not correct, 460, then the answer is ignored 470.
  • FIG. 5 is a flow diagram of one embodiment of a technique to analyze framing and to employ safe frame busting. The functionality described with respect to FIG. 5 may provide framing analysis as well as necessary frame busting to a browser or other application through which pages are displayed to a user of a host computing system.
  • In the example of FIG. 5, a page from a first domain (a.com) attempts to frame from a second domain (safe.com), 500. The page is disabled, 505. That is, the framed page (safe.com) is disabled within the framing page (a.com), 510. Any technique known in the art to disable the page may be utilized for this purpose.
  • If the page is not framed, 515, then the page may be enabled, 599. Once the page is enabled, 599, the browser may render the page and provide the contents to the user. If the page is framed, 515, further frame authorization checking may be performed.
  • The browser may retrieve authorized domains for a session, 520. In one embodiment, the browser may maintain, or have, access to, one or more policies that describe domains that may be framed, domains that may perform framing, and/or other information related to authorized framing. Further, there may exist hierarchical policies that may be enforced by the browser when analyzing a page having frames.
  • In one embodiment, some or all of the framing authorization information may be obtained for the current customer/entity (e.g., safe.com), 525. The multitenant environment may maintain the information on, for example, a database (530) or any other appropriate storage mechanism. In one embodiment, the browser operates to inspect each level in the hierarchy that is framing the current page and confirm the domains/pages in each level are authorized to be in that position of the hierarchy of framing for the current framed page.
  • In the example of FIG. 5, the browser may create a confirmation frame and may store a pointer frame, 540. The confirmation frame may have the same domain as the top level frame (a.com) and be framed within the frame to be checked (safe.com), 545. The confirmation frame is used to check the framing domain, 550.
  • In one embodiment, to send the message back using the same-origin process, the test framing page creates another iframe in its' own DOM tree setting the URL to the domain to which the answer should be sent, 565, and adding the result data to the URL. For example, if b.com/testFraming.html attempts to tell L3 (from safe.com) that the result of checking L1 was successful. It can create an iframe setting the URL to
      • safe.com/testFramingResult.html? level-L1&result=TRUE
  • The new iframe loaded from the same domain as L3 will then call directly into a function implemented on L3 (for example, using parent.parent.ConfirmFunction( ) and not traversing the tree in other ways, because this ensures calling directly the grandparent which is the correct L3 frame). This function will get parameters such as level, result, and parent. Level is the level parameter it got in the URL, which will let the L3 know which level was confirmed. Result is the result of the authorization check weather it was indeed the domain/page we thought it was. Parent is the “parent pointer” of the testFramingResult frame. This will be used to compare to the frame L3 created, confirming we are getting the response from the correct grandchild and not from a rouge grandchild that was created just to spoof a result.
  • The iframe creates a confirmation result frame, 560. The inner frame from the domain being tested (safe.com) sends the result frame to the outer frame from the same domain, 570. The result frame passes its parent frame pointer to the outer frame, 575. If the parent pointer does not match the original pointer stored when the conformation frame was created, 580, the result frame is ignored, 585. If the parent pointer matches the stored pointer, 580, and framing is not authorized, 590, frame busting is employed, 595. If the parent pointer is the same as the stored pointer, 580, and framing is authorized, 590, the page is enabled, 599.
  • Protection against replay attacks may be provided using solutions such as time stamps, or challenge response. Also, based on the method used to send the messages, signature and/or encryption solutions can be used to protect against forged requests and forged responses (An example can be HMAC). In one embodiment, if a policy might allow multiple hierarchy trees, a parameter, such as a URL parameter, may be used to help identify the hierarchy to be used Another option will be to try every possible hierarchy form the policy.
  • In one embodiment, a policy can have an option to allow a branch of hierarchy that does not care what is above it, for example, you can have A->B>login and allow A to be framed under any other hierarchy. In this case, inspection is performed only for framing up to A. Another example is to allow anything to frame login. In one embodiment, a policy can have wild cards for specific levels: for example in the current level: allow any domain, allow pages that start with, allow any of a list of domains or list of pages, etc. In one embodiment, the confirmation process can require other data such as schema (i.e., http, haps), port, headers, URL parameters (including values after the hash sign), etc.
  • In addition, a detection engine can try and analyze standard user behavior with clicks and mouse on the page, and alert for deviations. For example, if users usually wait on the page for a few seconds before clicking, approach the buttons from bottom, click on areas of the button based on location and approach, etc. Then when the detection engine detects a deviation, the action may be blocked, a network administrator may be alerted, a challenge may be provided to the user to confirm the action, etc.
  • In addition, some randomness can be introduced into the mix helping detect un-usual behavior. For example, if a specific user usually clicks within an area of the button even when it is randomly moved in direction, then for that user when an unusual location is detected, close to the button, or at the original location, etc., it might be an attack and the user clicked on it without seeing it.
  • In one embodiment, in order to confirm the button is visible and the click/key-press is intentional, a challenge can be presented to the user with tasks such as CAPTHCA, visible keypads with random numbers for them to click on (Server will prompt the user with a value i.e. 527 and the user will have to click on the visible pad to enter that value), enter their password, introduce randomness to the original object locations, etc.
  • FIG. 6 is a block diagram of a frame analyzing agent that may provide safe frame busting. The functionality of frame analyzing agent 600 may be provided by a browser application, a server application, a detection engine, or any combination thereof. Frame analyzing agent 600 may provide the functionality described with respect to FIG. 4 and/or FIG. 5.
  • Frame analyzing agent 600 includes control logic 610, which implements logical functional control to direct operation of frame analyzing agent 600, and/or hardware associated with directing operation of frame analyzing agent 600. Logic may be hardware logic circuits and/or software routines. In one embodiment, frame analyzing agent 500 includes one or more applications 612, which represent code sequence and/or programs that provide instructions to control logic 610.
  • Frame analyzing agent 600 includes memory 614, which represents a memory device and/or access to a memory resource for storing data and/or instructions. Memory 614 may include memory local to frame analyzing agent 600, as well as, or alternatively, including memory of the host system on which frame analyzing agent 600 resides. Frame analyzing agent 600 also includes one or more interfaces 616, which represent access interfaces to/from (an input/output interface) frame analyzing agent 600 with regard to entities (electronic or human) external to frame analyzing agent 600.
  • Frame analyzing agent 600 also includes frame analyzing engine 620, which represents one or more functions or module that enable frame analyzing agent 600 to provide the frame analysis services as described above. The example of FIG. 6 provides several modules that may be included in frame analyzing engine 620; however, different and/or additional modules may also be included. Example modules that may be involved in providing the frame analyzing functionality include page retriever 630, page disabler 640, frame tester 650, hierarchy tester 660, encryption module 670 and page enabler 680. Each of these modules may further include other sub-modules to provide other functions. As used herein, a module refers to routine, a subsystem, logic circuit, microcode, etc., whether implemented in hardware, software, firmware or some combination thereof.
  • Page retriever 630 operates to retrieve pages to be displayed by a browser. For example, page retriever 630 may operate on a URL or other identifier to retrieve a page to be displayed. Page disabler 640 operates to disable pages until frame checking is completed. In one embodiment, page disabler 640 disables all pages retrieved by page retriever 630 until other modules of frame analyzing engine 620 can complete framing analysis as described herein.
  • Frame tester 650 operates to perform one or more frame testing techniques as described herein. In one embodiment, frame tester 650 operates to determine whether any pages are framed (e.g., 410, 515). Frame tester 650 may provide additional functionality as well, for example, if frames are detected, providing information about the frames.
  • Hierarchy tester 660 may operate to analyze frame hierarchies, using one or more of the techniques described herein (e.g., FIG. 4, FIG. 5). Hierarchy tester 660 may utilize, for example, the SOP technique described above, the challenge request/response technique described above, and/or the secure message post technique described above, or any combination thereof.
  • Encryption module 670 may operate to provide encryption functionality as necessary to hierarchy tester 660. For example, encryption module 670 may be utilized when a challenge request/response technique is used. In an embodiment, where encryption is not utilized, encryption module 670 may be absent from frame analyzing engine 620. Page enabler 680 operates to enable the pave if all framing is authorized, or if no framing is detected.
  • FIG. 7 is a block diagram of one embodiment of a computing system. The computing system illustrated in FIG. 7 is intended to represent a range of electronic systems (either wired or wireless) including, for example, desktop computer systems, laptop computer systems, cellular telephones, personal digital assistants (PDAs) including cellular-enabled PDAs, set top boxes. Alternative electronic systems may include more, fewer and/or different components.
  • Computing system 700 includes bus 705 or other communication device to communicate information, and processor 710 coupled to bus 705 that may process information. While computing system 700 is illustrated with a single processor, computing system 700 may include multiple processors and/or co-processors. Computing system 700 further may include random access memory (RAM) or other dynamic storage device 720 (referred to as memory), coupled to bus 705 and may store information and instructions that may be executed by processor 710. Memory 720 may also be used to store temporary variables or other intermediate information during execution of instructions by processor 710.
  • Computing system 700 may also include read only memory (ROM) and/or other static storage device 730 coupled to bus 705 that may store static information and instructions for processor 710. Data storage device 740 may be coupled to bus 705 to store information and instructions. Data storage device 740 such as a magnetic disk or optical disc and corresponding drive may be coupled to computing system 700.
  • Computing system 700 may also be coupled via bus 705 to display device 750, such as a cathode ray tube (CRT) or liquid crystal display (LCD), to display information to a user. Alphanumeric input device 760, including alphanumeric and other keys, may be coupled to bus 705 to communicate information and command selections to processor 710. Another type of user input device is cursor control 770, such as a mouse, a trackball, or cursor direction keys to communicate direction information and command selections to processor 710 and to control cursor movement on display 750.
  • Computing system 700 further may include network interface(s) 780 to provide access to a network, such as a local area network. Network interface(s) 780 may include, for example, a wireless network interface having antenna 785, which may represent one or more antenna(e). Network interface(s) 780 may also include, for example, a wired network interface to communicate with remote devices via network cable 787, which may be, for example, an Ethernet cable, a coaxial cable, a fiber optic cable, a serial cable, or a parallel cable.
  • In one embodiment, network interface(s) 780 may provide access to a local area network, for example, by conforming to IEEE 802.11b and/or IEEE 802.11g standards, and/or the wireless network interface may provide access to a personal area network, for example, by conforming to Bluetooth standards. Other wireless network interfaces and/or protocols can also be supported.
  • Computing system 700 may operate to execute a browser application that may perform frame checking as described herein. The browser application may also function to generate graphical output to be displayed to a user of computing system 700. In one embodiment, the browser, as well as other applications, may be implemented as instructions that are executed by processor(s) 710 and/or other computing elements of electronic system 700. The instructions may be stored in memory 720 prior to and/or during execution.
  • Instructions are provided to memory from a storage device, such as magnetic disk, a read-only memory (ROM) integrated circuit, CD-ROM, DVD, via a remote connection (e.g., over a network via network interface 230) that is either wired or wireless providing access to one or more electronically-accessible media, etc. In alternative embodiments, hard-wired circuitry can be used in place of or in combination with software instructions. Thus, execution of sequences of instructions is not limited to any specific combination of hardware circuitry and software instructions.
  • A computer-readable medium includes any mechanism that provides content (e.g., computer executable instructions) in a form readable by an electronic device (e.g., a computer, a personal digital assistant, a cellular telephone). For example, a computer-readable medium may include read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; etc.
  • IEEE 802.11b corresponds to IEEE Std. 802.11b-1999 entitled “Local and Metropolitan Area Networks, Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications: Higher-Speed Physical Layer Extension in the 2.4 GHz Band,” approved Sep. 16, 1999 as well as related documents. IEEE 802.11g corresponds to IEEE Std. 802.11g-2003 entitled “Local and Metropolitan Area Networks, Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications. Amendment 4: Further Higher Rate Extension in the 2.4 GHz Band, approved Jun. 27, 2003 as well as related documents. Bluetooth protocols are described in “Specification of the Bluetooth System: Core, Version 1.1,” published Feb. 22, 2001 by the Bluetooth Special Interest Group, Inc. Associated as well as previous or subsequent versions of the Bluetooth standard may also be supported.
  • Reference in the specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.
  • While the invention has been described b way of example and in terms of the specific embodiments, it is to be understood that the invention is not limited to the disclosed embodiments. To the contrary, it is intended to cover various modifications and similar arrangements as would be apparent to those skilled in the art. Therefore, the scope of the appended claims should be accorded the broadest interpretation so as to encompass all such modifications and similar arrangements.

Claims (16)

What is claimed is:
1. A method for analyzing a page to be presented by a browser executed by one or more processors of a computing platform, the method comprising:
blocking loading of the page having one or more frames with the one or more processors;
enabling the page with the one or more processors if the page is not framed by a second page;
inspecting each level of as hierarchy of framing pages with the one or more processors to determine whether each level is authorized by
determining whether a domain of the frame matches a domain of the framing page, and
providing an indication to the framed page of whether the domain of the frame and the domain of the framing page to be tested match; and
enabling the page with the one or more processors if the inspecting indicates that each level of the hierarchy of framing pages is authorized.
2. The method of claim 1 wherein the browser accesses a policy to determine what hierarchy of framing pages is allowed.
3. The method of claim 1 wherein providing an indication to the framed page of whether the domain of the frame and the domain of the framing page to be tested match comprises utilizing a secure message post between the domain of the frame and the domain of the framed page to secure the verification process.
4. The method of claim 1 wherein determining whether the domain of the frame matches a domain of the framing page to be tested comprises utilizing a Same Origin Policy (SOP) test between the domain of the frame and the domain of the framing page to be tested.
5. The method of claim 1 wherein determining whether the domain of the frame matches a domain of the framing page to be tested comprises utilizing a challenge request-response exchange between the domain of the frame and the domain of the framed page to secure the verification process.
6. A not -transitory computer readable medium having stored thereon instructions that, when executed by one or more processors, cause the one or more processors to analyze a page to be presented by a browser running on a computing platform by:
blocking loading of the page having one or more frames with the one or more processors;
enabling the page with the one or more processors if the page is not framed by a second page;
inspecting each level of a hierarchy of framing pages with the one or more processors to determine whether each level is authorized by
determining whether a domain of the frame matches a domain of the framing page, and
providing an indication to the framed page of whether the domain of the frame and the domain of the framing page to be tested match; and
enabling the page with the one or more processors if the inspecting indicates that each level of the hierarchy of framing pages is authorized.
7. The medium of claim 6 wherein the browser accesses a policy to determine what hierarchy of framing pages is allowed.
8. The medium of claim 6 wherein providing an indication to the framed page of whether the domain of the frame and the domain of the framing page to be tested match comprises utilizing a secure message post between the domain of the frame and the domain of the framed page to secure the verification process.
9. The medium of claim 6 wherein determining whether the domain of the frame matches a domain of the framing page to be tested comprises utilizing a Same Origin Policy (SOP) test between the domain of the frame and the domain of the framing page to be tested.
10. The medium of claim 6 wherein determining whether the domain of the frame matches a domain of the framing page to be tested comprises utilizing a challenge request-response exchange between the domain of the frame and the domain of the framed page to secure the verification process.
11. A system having one or more hardware processing cores to analyze a page to be presented by a browser executed by the one or more hardware processing cores, wherein the one or more hardware processing cores at least block loading of the page having one or more frames with the one or more processors, enable the page with the one or more processors if the page is not framed by a second page, inspect each level of a hierarchy of framing pages with the one or more processors to determine whether each level is authorized by determining whether a domain of the frame matches a domain of the framing page and providing an indication to the framed page of whether the domain of the frame and the domain of the framing page to be tested match, and enable the page with the one or more processors if the inspecting indicates that each level of the hierarchy of framing pages is authorized.
12. The system of claim 11 wherein the browser accesses a policy to determine what hierarchy of framing pages is allowed.
13. The system of claim 11 wherein the browser accesses a policy to determine what hierarchy of framing pages is allowed.
14. The system of claim 1 wherein providing an indication to the page of whether the domain of the frame and the domain of the framing page to be tested match comprises utilizing a secure message post between the domain of the frame and the domain of the framed page to secure the verification process.
15. The system of claim 11 wherein determining whether the domain of the frame matches a domain of the framing page to be tested comprises utilizing a Same Origin Policy (SOP) test between the domain of the frame, and the domain of the framing page to be tested.
16. The system of claim 11 wherein determining whether the domain of the frame matches a domain of the framing page to be tested comprises utilizing a challenge request-response exchange between the domain of the frame and the d omain of the framed page to secure the verification process.
US15/261,781 2010-06-25 2016-09-09 Methods and systems for providing security for page framing Active US10193914B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US15/261,781 US10193914B2 (en) 2010-06-25 2016-09-09 Methods and systems for providing security for page framing
US16/259,953 US10834115B2 (en) 2010-06-25 2019-01-28 Methods and systems for providing security for page framing

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US35854410P 2010-06-25 2010-06-25
US13/168,444 US9442783B2 (en) 2010-06-25 2011-06-24 Methods and systems for providing security for page framing
US15/261,781 US10193914B2 (en) 2010-06-25 2016-09-09 Methods and systems for providing security for page framing

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US13/168,444 Continuation US9442783B2 (en) 2010-06-25 2011-06-24 Methods and systems for providing security for page framing

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/259,953 Continuation US10834115B2 (en) 2010-06-25 2019-01-28 Methods and systems for providing security for page framing

Publications (2)

Publication Number Publication Date
US20170126722A1 true US20170126722A1 (en) 2017-05-04
US10193914B2 US10193914B2 (en) 2019-01-29

Family

ID=45353912

Family Applications (3)

Application Number Title Priority Date Filing Date
US13/168,444 Active 2033-04-23 US9442783B2 (en) 2010-06-25 2011-06-24 Methods and systems for providing security for page framing
US15/261,781 Active US10193914B2 (en) 2010-06-25 2016-09-09 Methods and systems for providing security for page framing
US16/259,953 Active US10834115B2 (en) 2010-06-25 2019-01-28 Methods and systems for providing security for page framing

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US13/168,444 Active 2033-04-23 US9442783B2 (en) 2010-06-25 2011-06-24 Methods and systems for providing security for page framing

Family Applications After (1)

Application Number Title Priority Date Filing Date
US16/259,953 Active US10834115B2 (en) 2010-06-25 2019-01-28 Methods and systems for providing security for page framing

Country Status (1)

Country Link
US (3) US9442783B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170083489A1 (en) * 2009-08-31 2017-03-23 Ebay Inc. System and method to provide a domain split display
US10193914B2 (en) * 2010-06-25 2019-01-29 Salesforce.Com, Inc. Methods and systems for providing security for page framing

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9058429B2 (en) * 2009-11-06 2015-06-16 Toby Biddle Usability testing tool
US9542500B1 (en) * 2012-01-11 2017-01-10 Amazon Technologies, Inc. Generating network pages using customer-generated network page portions
US9800455B1 (en) 2012-02-08 2017-10-24 Amazon Technologies, Inc. Log monitoring system
US8914881B2 (en) * 2012-07-31 2014-12-16 Sap Se Flexible and secure clickjacking protection mechanism
US8548917B1 (en) * 2012-09-07 2013-10-01 Amazon Technologies, Inc. Detection of child frames in web pages
US9262342B2 (en) * 2012-12-20 2016-02-16 Rambus Inc. Process authenticated memory page encryption
US20150212658A1 (en) * 2014-01-24 2015-07-30 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Indicating altered user interface elements
US20150264025A1 (en) * 2014-03-17 2015-09-17 Microsoft Corporation Persistent bookmarklet authorization
US11032309B2 (en) * 2015-02-20 2021-06-08 Authentic8, Inc. Secure application for accessing web resources
US10027700B2 (en) * 2015-02-20 2018-07-17 Authentic8, Inc. Secure analysis application for accessing web resources via URL forwarding
US10320808B2 (en) * 2016-10-25 2019-06-11 Cerner Innovation, Inc. Clickjacking prevention

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070300063A1 (en) * 2006-06-23 2007-12-27 Research In Motion Limited Pairing to a Wireless Peripheral Device at the Lock-Screen
US20080066163A1 (en) * 2006-09-07 2008-03-13 Fazal Raheman Novel method and system of Network Integrity via Digital Authorization (NIDA) for enhanced internet security
US20080065775A1 (en) * 2006-09-13 2008-03-13 Cisco Technology, Inc. Location data-URL mechanism
US20090187918A1 (en) * 2008-01-18 2009-07-23 Microsoft Corporation Methods and apparatus for securing frames from other frames
US20100088751A1 (en) * 2008-10-02 2010-04-08 Fujitsu Limited Communication system, terminal control unit and communication method
US20100107228A1 (en) * 2008-09-02 2010-04-29 Paul Lin Ip address secure multi-channel authentication for online transactions
US20100274910A1 (en) * 2009-04-24 2010-10-28 Microsoft Corporation Hosted application sandbox model
US20110119352A1 (en) * 2009-11-16 2011-05-19 Parrotview, Inc. Method of mutual browsing and computer program therefor
US20110167493A1 (en) * 2008-05-27 2011-07-07 Yingbo Song Systems, methods, ane media for detecting network anomalies
US20110239270A1 (en) * 2010-03-26 2011-09-29 Nokia Corporation Method and apparatus for providing heterogeneous security management
US20110321162A1 (en) * 2010-06-25 2011-12-29 Salesforce.Com Methods And Systems For Providing Security For Page Framing
US8856869B1 (en) * 2009-06-22 2014-10-07 NexWavSec Software Inc. Enforcement of same origin policy for sensitive data

Family Cites Families (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5649104A (en) 1993-03-19 1997-07-15 Ncr Corporation System for allowing user of any computer to draw image over that generated by the host computer and replicating the drawn image to other computers
US5608872A (en) 1993-03-19 1997-03-04 Ncr Corporation System for allowing all remote computers to perform annotation on an image and replicating the annotated image on the respective displays of other comuters
US5577188A (en) 1994-05-31 1996-11-19 Future Labs, Inc. Method to provide for virtual screen overlay
GB2300991B (en) 1995-05-15 1997-11-05 Andrew Macgregor Ritchie Serving signals to browsing clients
US5715450A (en) 1995-09-27 1998-02-03 Siebel Systems, Inc. Method of selecting and presenting data from a database using a query language to a user of a computer system
US5831610A (en) 1996-02-23 1998-11-03 Netsuite Development L.P. Designing networks
US5821937A (en) 1996-02-23 1998-10-13 Netsuite Development, L.P. Computer method for updating a network design
US6604117B2 (en) 1996-03-19 2003-08-05 Siebel Systems, Inc. Method of maintaining a network of partially replicated database system
US5873096A (en) 1997-10-08 1999-02-16 Siebel Systems, Inc. Method of maintaining a network of partially replicated database system
WO1998038762A2 (en) 1997-02-26 1998-09-03 Siebel Systems, Inc. Determining visibility to a remote database client
EP1021775A4 (en) 1997-02-26 2005-05-11 Siebel Systems Inc Method of determining the visibility to a remote databaseclient of a plurality of database transactions using simplified visibility rules
AU6336698A (en) 1997-02-26 1998-09-29 Siebel Systems, Inc. Distributed relational database
AU6440398A (en) 1997-02-26 1998-09-18 Siebel Systems, Inc. Method of using a cache to determine the visibility to a remote database client of a plurality of database transactions
WO1998038583A1 (en) 1997-02-26 1998-09-03 Siebel Systems, Inc. Method of determining visibility to a remote database client of a plurality of database transactions having variable visibility strengths
AU6336798A (en) 1997-02-27 1998-09-29 Siebel Systems, Inc. Method of synchronizing independently distributed software and database schema
EP1019807B1 (en) 1997-02-27 2017-04-05 Siebel Systems, Inc. Method of migrating to a successive level of a software distribution incorporating local modifications
JP2001513926A (en) 1997-02-28 2001-09-04 シーベル システムズ,インコーポレイティド Partially replicated distributed database with multiple levels of remote clients
US6169534B1 (en) 1997-06-26 2001-01-02 Upshot.Com Graphical user interface for customer information management
US6560461B1 (en) 1997-08-04 2003-05-06 Mundi Fomukong Authorized location reporting paging system
US5918159A (en) 1997-08-04 1999-06-29 Fomukong; Mundi Location reporting satellite paging system with optional blocking of location reporting
US20020059095A1 (en) 1998-02-26 2002-05-16 Cook Rachael Linette System and method for generating, capturing, and managing customer lead information over a computer network
US6732111B2 (en) 1998-03-03 2004-05-04 Siebel Systems, Inc. Method, apparatus, system, and program product for attaching files and other objects to a partially replicated database
US5963953A (en) 1998-03-30 1999-10-05 Siebel Systems, Inc. Method, and system for product configuration
CA2341871A1 (en) 1998-08-27 2000-03-09 Upshot Corporation A method and apparatus for network-based sales force management
US6728960B1 (en) 1998-11-18 2004-04-27 Siebel Systems, Inc. Techniques for managing multiple threads in a browser environment
US6393605B1 (en) 1998-11-18 2002-05-21 Siebel Systems, Inc. Apparatus and system for efficient delivery and deployment of an application
US6601087B1 (en) 1998-11-18 2003-07-29 Webex Communications, Inc. Instant document sharing
WO2000033235A1 (en) 1998-11-30 2000-06-08 Siebel Systems, Inc. State models for monitoring processes
WO2000033226A1 (en) 1998-11-30 2000-06-08 Siebel Systems, Inc. Smart scripting call centers
AU2035600A (en) 1998-11-30 2000-06-19 Siebel Systems, Inc. Development tool, method, and system for client server appications
JP2002531900A (en) 1998-11-30 2002-09-24 シーベル システムズ,インコーポレイティド Assignment manager
US6549988B1 (en) 1999-01-22 2003-04-15 Ilya Gertner Data storage system comprising a network of PCs and method using same
US20020072951A1 (en) 1999-03-03 2002-06-13 Michael Lee Marketing support database management method, system and program product
US6574635B2 (en) 1999-03-03 2003-06-03 Siebel Systems, Inc. Application instantiation based upon attributes and values stored in a meta data repository, including tiering of application layers objects and components
US6621834B1 (en) 1999-11-05 2003-09-16 Raindance Communications, Inc. System and method for voice transmission over network protocols
US6535909B1 (en) 1999-11-18 2003-03-18 Contigo Software, Inc. System and method for record and playback of collaborative Web browsing session
US6324568B1 (en) 1999-11-30 2001-11-27 Siebel Systems, Inc. Method and system for distributing objects over a network
US6654032B1 (en) 1999-12-23 2003-11-25 Webex Communications, Inc. Instant sharing of documents on a remote server
US6577726B1 (en) 2000-03-31 2003-06-10 Siebel Systems, Inc. Computer telephony integration hotelling method and system
US7266502B2 (en) 2000-03-31 2007-09-04 Siebel Systems, Inc. Feature centric release manager method and system
US6336137B1 (en) 2000-03-31 2002-01-01 Siebel Systems, Inc. Web client-server system and method for incompatible page markup and presentation languages
US6732100B1 (en) 2000-03-31 2004-05-04 Siebel Systems, Inc. Database access method and system for user role defined access
US6842748B1 (en) 2000-04-14 2005-01-11 Rightnow Technologies, Inc. Usage based strength between related information in an information retrieval system
US7730072B2 (en) 2000-04-14 2010-06-01 Rightnow Technologies, Inc. Automated adaptive classification system for knowledge networks
US6434550B1 (en) 2000-04-14 2002-08-13 Rightnow Technologies, Inc. Temporal updates of relevancy rating of retrieved information in an information search system
US6665655B1 (en) 2000-04-14 2003-12-16 Rightnow Technologies, Inc. Implicit rating of retrieved information in an information search system
US6763501B1 (en) 2000-06-09 2004-07-13 Webex Communications, Inc. Remote document serving
KR100365357B1 (en) 2000-10-11 2002-12-18 엘지전자 주식회사 Method for data communication of mobile terminal
US7581230B2 (en) 2001-02-06 2009-08-25 Siebel Systems, Inc. Adaptive communication application programming interface
USD454139S1 (en) 2001-02-20 2002-03-05 Rightnow Technologies Display screen for a computer
US7174514B2 (en) 2001-03-28 2007-02-06 Siebel Systems, Inc. Engine to present a user interface based on a logical structure, such as one for a customer relationship management system, across a web site
US7363388B2 (en) 2001-03-28 2008-04-22 Siebel Systems, Inc. Method and system for direct server synchronization with a computing device
US6829655B1 (en) 2001-03-28 2004-12-07 Siebel Systems, Inc. Method and system for server synchronization with a computing device via a companion device
US20030206192A1 (en) 2001-03-31 2003-11-06 Mingte Chen Asynchronous message push to web browser
US20030018705A1 (en) 2001-03-31 2003-01-23 Mingte Chen Media-independent communication server
US6732095B1 (en) 2001-04-13 2004-05-04 Siebel Systems, Inc. Method and apparatus for mapping between XML and relational representations
US7761288B2 (en) 2001-04-30 2010-07-20 Siebel Systems, Inc. Polylingual simultaneous shipping of software
US6782383B2 (en) 2001-06-18 2004-08-24 Siebel Systems, Inc. System and method to implement a persistent and dismissible search center frame
US6728702B1 (en) 2001-06-18 2004-04-27 Siebel Systems, Inc. System and method to implement an integrated search center supporting a full-text search and query on a database
US6711565B1 (en) 2001-06-18 2004-03-23 Siebel Systems, Inc. Method, apparatus, and system for previewing search results
US6763351B1 (en) 2001-06-18 2004-07-13 Siebel Systems, Inc. Method, apparatus, and system for attaching search results
US20030004971A1 (en) 2001-06-29 2003-01-02 Gong Wen G. Automatic generation of data models and accompanying user interfaces
US7761535B2 (en) 2001-09-28 2010-07-20 Siebel Systems, Inc. Method and system for server synchronization with a computing device
US6978445B2 (en) 2001-09-28 2005-12-20 Siebel Systems, Inc. Method and system for supporting user navigation in a browser environment
US6993712B2 (en) 2001-09-28 2006-01-31 Siebel Systems, Inc. System and method for facilitating user interaction in a browser environment
US6724399B1 (en) 2001-09-28 2004-04-20 Siebel Systems, Inc. Methods and apparatus for enabling keyboard accelerators in applications implemented via a browser
US6826582B1 (en) 2001-09-28 2004-11-30 Emc Corporation Method and system for using file systems for content management
US7962565B2 (en) 2001-09-29 2011-06-14 Siebel Systems, Inc. Method, apparatus and system for a mobile web client
US8359335B2 (en) 2001-09-29 2013-01-22 Siebel Systems, Inc. Computing system and method to implicitly commit unsaved data for a world wide web application
US6901595B2 (en) 2001-09-29 2005-05-31 Siebel Systems, Inc. Method, apparatus, and system for implementing a framework to support a web-based application
US7146617B2 (en) 2001-09-29 2006-12-05 Siebel Systems, Inc. Method, apparatus, and system for implementing view caching in a framework to support web-based applications
US7289949B2 (en) 2001-10-09 2007-10-30 Right Now Technologies, Inc. Method for routing electronic correspondence based on the level and type of emotion contained therein
US6804330B1 (en) 2002-01-04 2004-10-12 Siebel Systems, Inc. Method and system for accessing CRM data via voice
US7058890B2 (en) 2002-02-13 2006-06-06 Siebel Systems, Inc. Method and system for enabling connectivity to a data system
US7131071B2 (en) 2002-03-29 2006-10-31 Siebel Systems, Inc. Defining an approval process for requests for approval
US7672853B2 (en) 2002-03-29 2010-03-02 Siebel Systems, Inc. User interface for processing requests for approval
US6850949B2 (en) 2002-06-03 2005-02-01 Right Now Technologies, Inc. System and method for generating a dynamic interface via a communications network
US7437720B2 (en) 2002-06-27 2008-10-14 Siebel Systems, Inc. Efficient high-interactivity user interface for client-server applications
US7594181B2 (en) 2002-06-27 2009-09-22 Siebel Systems, Inc. Prototyping graphical user interfaces
US8639542B2 (en) 2002-06-27 2014-01-28 Siebel Systems, Inc. Method and apparatus to facilitate development of a customer-specific business process model
US20040010489A1 (en) 2002-07-12 2004-01-15 Rightnow Technologies, Inc. Method for providing search-specific web pages in a network computing environment
US7251787B2 (en) 2002-08-28 2007-07-31 Siebel Systems, Inc. Method and apparatus for an integrated process modeller
US9448860B2 (en) 2003-03-21 2016-09-20 Oracle America, Inc. Method and architecture for providing data-change alerts to external applications via a push service
US7904340B2 (en) 2003-03-24 2011-03-08 Siebel Systems, Inc. Methods and computer-readable medium for defining a product model
WO2004086197A2 (en) 2003-03-24 2004-10-07 Siebel Systems, Inc. Custom common object
WO2004086198A2 (en) 2003-03-24 2004-10-07 Siebel Systems, Inc. Common common object
US8762415B2 (en) 2003-03-25 2014-06-24 Siebel Systems, Inc. Modeling of order data
US7685515B2 (en) 2003-04-04 2010-03-23 Netsuite, Inc. Facilitating data manipulation in a browser-based user interface of an enterprise business application
US7620655B2 (en) 2003-05-07 2009-11-17 Enecto Ab Method, device and computer program product for identifying visitors of websites
US7409336B2 (en) 2003-06-19 2008-08-05 Siebel Systems, Inc. Method and system for searching data based on identified subset of categories and relevance-scored text representation-category combinations
US20040260659A1 (en) 2003-06-23 2004-12-23 Len Chan Function space reservation system
US7237227B2 (en) 2003-06-30 2007-06-26 Siebel Systems, Inc. Application user interface template with free-form layout
US7694314B2 (en) 2003-08-28 2010-04-06 Siebel Systems, Inc. Universal application network architecture
US8245049B2 (en) * 2004-06-14 2012-08-14 Microsoft Corporation Method and system for validating access to a group of related elements
US7289976B2 (en) 2004-12-23 2007-10-30 Microsoft Corporation Easy-to-use data report specification
US8650214B1 (en) * 2005-05-03 2014-02-11 Symantec Corporation Dynamic frame buster injection
US8255873B2 (en) * 2006-11-20 2012-08-28 Microsoft Corporation Handling external content in web applications
US8954500B2 (en) 2008-01-04 2015-02-10 Yahoo! Inc. Identifying and employing social network relationships
US10019570B2 (en) * 2007-06-14 2018-07-10 Microsoft Technology Licensing, Llc Protection and communication abstractions for web browsers
US8539234B2 (en) * 2010-03-30 2013-09-17 Salesforce.Com, Inc. Secure client-side communication between multiple domains

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070300063A1 (en) * 2006-06-23 2007-12-27 Research In Motion Limited Pairing to a Wireless Peripheral Device at the Lock-Screen
US20080066163A1 (en) * 2006-09-07 2008-03-13 Fazal Raheman Novel method and system of Network Integrity via Digital Authorization (NIDA) for enhanced internet security
US20080065775A1 (en) * 2006-09-13 2008-03-13 Cisco Technology, Inc. Location data-URL mechanism
US20090187918A1 (en) * 2008-01-18 2009-07-23 Microsoft Corporation Methods and apparatus for securing frames from other frames
US20110167493A1 (en) * 2008-05-27 2011-07-07 Yingbo Song Systems, methods, ane media for detecting network anomalies
US20100107228A1 (en) * 2008-09-02 2010-04-29 Paul Lin Ip address secure multi-channel authentication for online transactions
US20100088751A1 (en) * 2008-10-02 2010-04-08 Fujitsu Limited Communication system, terminal control unit and communication method
US20100274910A1 (en) * 2009-04-24 2010-10-28 Microsoft Corporation Hosted application sandbox model
US8856869B1 (en) * 2009-06-22 2014-10-07 NexWavSec Software Inc. Enforcement of same origin policy for sensitive data
US20110119352A1 (en) * 2009-11-16 2011-05-19 Parrotview, Inc. Method of mutual browsing and computer program therefor
US20110239270A1 (en) * 2010-03-26 2011-09-29 Nokia Corporation Method and apparatus for providing heterogeneous security management
US20110321162A1 (en) * 2010-06-25 2011-12-29 Salesforce.Com Methods And Systems For Providing Security For Page Framing

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Barth et al. "Securing Frame Communication in Browsers," Communications of the ACM. Vol. 52, No. 6. Pub. Date: June 2009 pages 83-91 *
Rydstedt et al. "Busting Frame Busting: A Study of Clickjacking Vulnerabilities on Popular Sites" Pub. Date: 6/7/2010, pages 1-13 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170083489A1 (en) * 2009-08-31 2017-03-23 Ebay Inc. System and method to provide a domain split display
US10031898B2 (en) * 2009-08-31 2018-07-24 Ebay Inc. System and method to provide a domain split display
US10193914B2 (en) * 2010-06-25 2019-01-29 Salesforce.Com, Inc. Methods and systems for providing security for page framing
US10834115B2 (en) 2010-06-25 2020-11-10 Salesforce.Com, Inc. Methods and systems for providing security for page framing

Also Published As

Publication number Publication date
US20110321162A1 (en) 2011-12-29
US10193914B2 (en) 2019-01-29
US20190289027A1 (en) 2019-09-19
US9442783B2 (en) 2016-09-13
US10834115B2 (en) 2020-11-10

Similar Documents

Publication Publication Date Title
US10834115B2 (en) Methods and systems for providing security for page framing
US9582668B2 (en) Quantifying the risks of applications for mobile devices
US9531744B2 (en) In-line filtering of insecure or unwanted mobile device software components or communications
US9348980B2 (en) Methods, systems and application programmable interface for verifying the security level of universal resource identifiers embedded within a mobile application
US8918881B2 (en) Off-device anti-malware protection for mobile devices
US11856022B2 (en) Metadata-based detection and prevention of phishing attacks
US20090216795A1 (en) System and method for detecting and blocking phishing attacks
US20160036812A1 (en) Database Queries Integrity and External Security Mechanisms in Database Forensic Examinations
US20190222587A1 (en) System and method for detection of attacks in a computer network using deception elements
US10778687B2 (en) Tracking and whitelisting third-party domains
US20220232015A1 (en) Preventing cloud-based phishing attacks using shared documents with malicious links
US20220329567A1 (en) User interface for web server risk awareness
Varshney et al. Detecting spying and fraud browser extensions: Short paper
Shonola et al. Investigating attack vectors in M-learning systems in Nigerian universities
Usman et al. Building Secure Web-Applications Using Threat Model
Zhang et al. Cross-site scripting attacks in social network apis
Yergaliyev Continuous security testing for an existing client-server application
De Ryck et al. A security analysis of emerging web standards-extended version
CN114615077A (en) Honeypot-based network access control method, device and equipment
CN116961977A (en) Security detection method, apparatus, device and computer program product
Mangeard et al. WARNE: A Stalkerware Evidence Collection Tool
Macanda Honours Project Report

Legal Events

Date Code Title Description
AS Assignment

Owner name: SALESFORCE.COM, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:GLUCK, YOEL;REEL/FRAME:041097/0746

Effective date: 20160928

STCF Information on status: patent grant

Free format text: PATENTED CASE

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