mirror of
				https://github.com/mermaid-js/mermaid.git
				synced 2025-11-03 20:34:20 +01:00 
			
		
		
		
	Merge branch 'develop' into next
* develop: (61 commits) Revert "fix: Reduce gantt exclude days length" Commented out broken test (#4913) fix: Reduce gantt exclude days length Update docs Fix lint issue Fix release version Fix TopBar Add MC to integrations Add TopBar Fix docs Docs: Add Product Hunt info (#4900) Update docs Merge branch 'release/10.5.0' Mermaid release v10.5.0 docs: typo fixed docs: typo fixed Fix for issue with backticks in ids in classDiagrams more fixes fix typo more link fixes ...
This commit is contained in:
		@@ -132,4 +132,9 @@ describe('XSS', () => {
 | 
			
		||||
    cy.wait(1000);
 | 
			
		||||
    cy.get('#the-malware').should('not.exist');
 | 
			
		||||
  });
 | 
			
		||||
  it('should sanitize backticks in class names properly', () => {
 | 
			
		||||
    cy.visit('http://localhost:9000/xss24.html');
 | 
			
		||||
    cy.wait(1000);
 | 
			
		||||
    cy.get('#the-malware').should('not.exist');
 | 
			
		||||
  });
 | 
			
		||||
});
 | 
			
		||||
 
 | 
			
		||||
@@ -520,6 +520,32 @@ describe('Gantt diagram', () => {
 | 
			
		||||
    );
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  // TODO: fix it
 | 
			
		||||
  //
 | 
			
		||||
  // This test is skipped deliberately
 | 
			
		||||
  // because it fails and blocks our development pipeline
 | 
			
		||||
  // It was added as an attempt to fix gantt performance issues
 | 
			
		||||
  //
 | 
			
		||||
  // https://github.com/mermaid-js/mermaid/issues/3274
 | 
			
		||||
  //
 | 
			
		||||
  it.skip('should render a gantt diagram with very large intervals, skipping excludes if interval > 5 years', () => {
 | 
			
		||||
    imgSnapshotTest(
 | 
			
		||||
      `gantt
 | 
			
		||||
        title A long Gantt Diagram
 | 
			
		||||
        dateFormat   YYYY-MM-DD
 | 
			
		||||
        axisFormat   %m-%d
 | 
			
		||||
        tickInterval 1day
 | 
			
		||||
        excludes     weekends
 | 
			
		||||
        section Section
 | 
			
		||||
        A task           : a1, 9999-10-01, 30d
 | 
			
		||||
        Another task     : after a1, 20d
 | 
			
		||||
        section Another
 | 
			
		||||
        Task in sec      : 2022-10-20, 12d
 | 
			
		||||
        another task     : 24d
 | 
			
		||||
      `
 | 
			
		||||
    );
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  it('should render when compact is true', () => {
 | 
			
		||||
    imgSnapshotTest(
 | 
			
		||||
      `
 | 
			
		||||
 
 | 
			
		||||
@@ -160,4 +160,70 @@ describe('Quadrant Chart', () => {
 | 
			
		||||
    );
 | 
			
		||||
    cy.get('svg');
 | 
			
		||||
  });
 | 
			
		||||
  it('should render x-axis labels in the center, if x-axis has two labels', () => {
 | 
			
		||||
    imgSnapshotTest(
 | 
			
		||||
      `
 | 
			
		||||
  quadrantChart
 | 
			
		||||
    title Reach and engagement of campaigns
 | 
			
		||||
    x-axis Low Reach --> High Reach
 | 
			
		||||
    y-axis Low Engagement
 | 
			
		||||
    quadrant-1 We should expand
 | 
			
		||||
    quadrant-2 Need to promote
 | 
			
		||||
    quadrant-3 Re-evaluate
 | 
			
		||||
    quadrant-4 May be improved
 | 
			
		||||
    Campaign A: [0.3, 0.6]
 | 
			
		||||
    Campaign B: [0.45, 0.23]
 | 
			
		||||
    Campaign C: [0.57, 0.69]
 | 
			
		||||
    Campaign D: [0.78, 0.34]
 | 
			
		||||
    Campaign E: [0.40, 0.34]
 | 
			
		||||
    Campaign F: [0.35, 0.78]
 | 
			
		||||
      `,
 | 
			
		||||
      {}
 | 
			
		||||
    );
 | 
			
		||||
    cy.get('svg');
 | 
			
		||||
  });
 | 
			
		||||
  it('should render y-axis labels in the center, if y-axis has two labels', () => {
 | 
			
		||||
    imgSnapshotTest(
 | 
			
		||||
      `
 | 
			
		||||
  quadrantChart
 | 
			
		||||
    title Reach and engagement of campaigns
 | 
			
		||||
    x-axis Low Reach
 | 
			
		||||
    y-axis Low Engagement --> High Engagement
 | 
			
		||||
    quadrant-1 We should expand
 | 
			
		||||
    quadrant-2 Need to promote
 | 
			
		||||
    quadrant-3 Re-evaluate
 | 
			
		||||
    quadrant-4 May be improved
 | 
			
		||||
    Campaign A: [0.3, 0.6]
 | 
			
		||||
    Campaign B: [0.45, 0.23]
 | 
			
		||||
    Campaign C: [0.57, 0.69]
 | 
			
		||||
    Campaign D: [0.78, 0.34]
 | 
			
		||||
    Campaign E: [0.40, 0.34]
 | 
			
		||||
    Campaign F: [0.35, 0.78]
 | 
			
		||||
      `,
 | 
			
		||||
      {}
 | 
			
		||||
    );
 | 
			
		||||
    cy.get('svg');
 | 
			
		||||
  });
 | 
			
		||||
  it('should render both axes labels on the left and bottom, if both axes have only one label', () => {
 | 
			
		||||
    imgSnapshotTest(
 | 
			
		||||
      `
 | 
			
		||||
  quadrantChart
 | 
			
		||||
    title Reach and engagement of campaigns
 | 
			
		||||
    x-axis Reach -->
 | 
			
		||||
    y-axis Engagement -->
 | 
			
		||||
    quadrant-1 We should expand
 | 
			
		||||
    quadrant-2 Need to promote
 | 
			
		||||
    quadrant-3 Re-evaluate
 | 
			
		||||
    quadrant-4 May be improved
 | 
			
		||||
    Campaign A: [0.3, 0.6]
 | 
			
		||||
    Campaign B: [0.45, 0.23]
 | 
			
		||||
    Campaign C: [0.57, 0.69]
 | 
			
		||||
    Campaign D: [0.78, 0.34]
 | 
			
		||||
    Campaign E: [0.40, 0.34]
 | 
			
		||||
    Campaign F: [0.35, 0.78]
 | 
			
		||||
      `,
 | 
			
		||||
      {}
 | 
			
		||||
    );
 | 
			
		||||
    cy.get('svg');
 | 
			
		||||
  });
 | 
			
		||||
});
 | 
			
		||||
 
 | 
			
		||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							@@ -58,12 +58,10 @@
 | 
			
		||||
  </head>
 | 
			
		||||
  <body>
 | 
			
		||||
    <pre id="diagram" class="mermaid">
 | 
			
		||||
      flowchart
 | 
			
		||||
        classDef mainCategories fill:#f9d5e5, stroke:#233d4d,stroke-width:2px, font-weight:bold;
 | 
			
		||||
        CS(Customer Awareness Journey):::mainCategories
 | 
			
		||||
      </pre
 | 
			
		||||
    >
 | 
			
		||||
    <pre id="diagram" class="mermaid">
 | 
			
		||||
      classDiagram
 | 
			
		||||
  `Class<img src=x onerror=alert(1)>` <|-- `Class2<img src=x onerror=alert(2)>`
 | 
			
		||||
    </pre>
 | 
			
		||||
    <pre id="diagram" class="mermaid2">
 | 
			
		||||
flowchart
 | 
			
		||||
Node1:::class1 --> Node2:::class2
 | 
			
		||||
Node1:::class1 --> Node3:::class2
 | 
			
		||||
 
 | 
			
		||||
@@ -42,6 +42,16 @@
 | 
			
		||||
        font-size: 72px;
 | 
			
		||||
      }
 | 
			
		||||
    </style>
 | 
			
		||||
    <script>
 | 
			
		||||
      function xssAttack() {
 | 
			
		||||
        const div = document.createElement('div');
 | 
			
		||||
        div.id = 'the-malware';
 | 
			
		||||
        div.className = 'malware';
 | 
			
		||||
        div.innerHTML = 'XSS Succeeded';
 | 
			
		||||
        document.getElementsByTagName('body')[0].appendChild(div);
 | 
			
		||||
        throw new Error('XSS Succeeded');
 | 
			
		||||
      }
 | 
			
		||||
    </script>
 | 
			
		||||
  </head>
 | 
			
		||||
  <body>
 | 
			
		||||
    <div>Security check</div>
 | 
			
		||||
 
 | 
			
		||||
@@ -42,6 +42,16 @@
 | 
			
		||||
        font-size: 72px;
 | 
			
		||||
      }
 | 
			
		||||
    </style>
 | 
			
		||||
    <script>
 | 
			
		||||
      function xssAttack() {
 | 
			
		||||
        const div = document.createElement('div');
 | 
			
		||||
        div.id = 'the-malware';
 | 
			
		||||
        div.className = 'malware';
 | 
			
		||||
        div.innerHTML = 'XSS Succeeded';
 | 
			
		||||
        document.getElementsByTagName('body')[0].appendChild(div);
 | 
			
		||||
        throw new Error('XSS Succeeded');
 | 
			
		||||
      }
 | 
			
		||||
    </script>
 | 
			
		||||
  </head>
 | 
			
		||||
  <body>
 | 
			
		||||
    <div>Security check</div>
 | 
			
		||||
 
 | 
			
		||||
@@ -42,6 +42,16 @@
 | 
			
		||||
        font-size: 72px;
 | 
			
		||||
      }
 | 
			
		||||
    </style>
 | 
			
		||||
    <script>
 | 
			
		||||
      function xssAttack() {
 | 
			
		||||
        const div = document.createElement('div');
 | 
			
		||||
        div.id = 'the-malware';
 | 
			
		||||
        div.className = 'malware';
 | 
			
		||||
        div.innerHTML = 'XSS Succeeded';
 | 
			
		||||
        document.getElementsByTagName('body')[0].appendChild(div);
 | 
			
		||||
        throw new Error('XSS Succeeded');
 | 
			
		||||
      }
 | 
			
		||||
    </script>
 | 
			
		||||
  </head>
 | 
			
		||||
  <body>
 | 
			
		||||
    <div>Security check</div>
 | 
			
		||||
 
 | 
			
		||||
@@ -42,6 +42,16 @@
 | 
			
		||||
        font-size: 72px;
 | 
			
		||||
      }
 | 
			
		||||
    </style>
 | 
			
		||||
    <script>
 | 
			
		||||
      function xssAttack() {
 | 
			
		||||
        const div = document.createElement('div');
 | 
			
		||||
        div.id = 'the-malware';
 | 
			
		||||
        div.className = 'malware';
 | 
			
		||||
        div.innerHTML = 'XSS Succeeded';
 | 
			
		||||
        document.getElementsByTagName('body')[0].appendChild(div);
 | 
			
		||||
        throw new Error('XSS Succeeded');
 | 
			
		||||
      }
 | 
			
		||||
    </script>
 | 
			
		||||
  </head>
 | 
			
		||||
  <body>
 | 
			
		||||
    <div>Security check</div>
 | 
			
		||||
 
 | 
			
		||||
@@ -42,6 +42,16 @@
 | 
			
		||||
        font-size: 72px;
 | 
			
		||||
      }
 | 
			
		||||
    </style>
 | 
			
		||||
    <script>
 | 
			
		||||
      function xssAttack() {
 | 
			
		||||
        const div = document.createElement('div');
 | 
			
		||||
        div.id = 'the-malware';
 | 
			
		||||
        div.className = 'malware';
 | 
			
		||||
        div.innerHTML = 'XSS Succeeded';
 | 
			
		||||
        document.getElementsByTagName('body')[0].appendChild(div);
 | 
			
		||||
        throw new Error('XSS Succeeded');
 | 
			
		||||
      }
 | 
			
		||||
    </script>
 | 
			
		||||
  </head>
 | 
			
		||||
  <body>
 | 
			
		||||
    <div>Security check</div>
 | 
			
		||||
 
 | 
			
		||||
@@ -42,6 +42,16 @@
 | 
			
		||||
        font-size: 72px;
 | 
			
		||||
      }
 | 
			
		||||
    </style>
 | 
			
		||||
    <script>
 | 
			
		||||
      function xssAttack() {
 | 
			
		||||
        const div = document.createElement('div');
 | 
			
		||||
        div.id = 'the-malware';
 | 
			
		||||
        div.className = 'malware';
 | 
			
		||||
        div.innerHTML = 'XSS Succeeded';
 | 
			
		||||
        document.getElementsByTagName('body')[0].appendChild(div);
 | 
			
		||||
        throw new Error('XSS Succeeded');
 | 
			
		||||
      }
 | 
			
		||||
    </script>
 | 
			
		||||
  </head>
 | 
			
		||||
  <body>
 | 
			
		||||
    <div>Security check</div>
 | 
			
		||||
 
 | 
			
		||||
@@ -42,6 +42,16 @@
 | 
			
		||||
        font-size: 72px;
 | 
			
		||||
      }
 | 
			
		||||
    </style>
 | 
			
		||||
    <script>
 | 
			
		||||
      function xssAttack() {
 | 
			
		||||
        const div = document.createElement('div');
 | 
			
		||||
        div.id = 'the-malware';
 | 
			
		||||
        div.className = 'malware';
 | 
			
		||||
        div.innerHTML = 'XSS Succeeded';
 | 
			
		||||
        document.getElementsByTagName('body')[0].appendChild(div);
 | 
			
		||||
        throw new Error('XSS Succeeded');
 | 
			
		||||
      }
 | 
			
		||||
    </script>
 | 
			
		||||
  </head>
 | 
			
		||||
  <body>
 | 
			
		||||
    <div>Security check</div>
 | 
			
		||||
 
 | 
			
		||||
@@ -42,6 +42,16 @@
 | 
			
		||||
        font-size: 72px;
 | 
			
		||||
      }
 | 
			
		||||
    </style>
 | 
			
		||||
    <script>
 | 
			
		||||
      function xssAttack() {
 | 
			
		||||
        const div = document.createElement('div');
 | 
			
		||||
        div.id = 'the-malware';
 | 
			
		||||
        div.className = 'malware';
 | 
			
		||||
        div.innerHTML = 'XSS Succeeded';
 | 
			
		||||
        document.getElementsByTagName('body')[0].appendChild(div);
 | 
			
		||||
        throw new Error('XSS Succeeded');
 | 
			
		||||
      }
 | 
			
		||||
    </script>
 | 
			
		||||
  </head>
 | 
			
		||||
  <body>
 | 
			
		||||
    <div>Security check</div>
 | 
			
		||||
 
 | 
			
		||||
@@ -42,6 +42,16 @@
 | 
			
		||||
        font-size: 72px;
 | 
			
		||||
      }
 | 
			
		||||
    </style>
 | 
			
		||||
    <script>
 | 
			
		||||
      function xssAttack() {
 | 
			
		||||
        const div = document.createElement('div');
 | 
			
		||||
        div.id = 'the-malware';
 | 
			
		||||
        div.className = 'malware';
 | 
			
		||||
        div.innerHTML = 'XSS Succeeded';
 | 
			
		||||
        document.getElementsByTagName('body')[0].appendChild(div);
 | 
			
		||||
        throw new Error('XSS Succeeded');
 | 
			
		||||
      }
 | 
			
		||||
    </script>
 | 
			
		||||
  </head>
 | 
			
		||||
  <body>
 | 
			
		||||
    <div>Security check</div>
 | 
			
		||||
 
 | 
			
		||||
@@ -42,6 +42,16 @@
 | 
			
		||||
        font-size: 72px;
 | 
			
		||||
      }
 | 
			
		||||
    </style>
 | 
			
		||||
    <script>
 | 
			
		||||
      function xssAttack() {
 | 
			
		||||
        const div = document.createElement('div');
 | 
			
		||||
        div.id = 'the-malware';
 | 
			
		||||
        div.className = 'malware';
 | 
			
		||||
        div.innerHTML = 'XSS Succeeded';
 | 
			
		||||
        document.getElementsByTagName('body')[0].appendChild(div);
 | 
			
		||||
        throw new Error('XSS Succeeded');
 | 
			
		||||
      }
 | 
			
		||||
    </script>
 | 
			
		||||
  </head>
 | 
			
		||||
  <body>
 | 
			
		||||
    <div>Security check</div>
 | 
			
		||||
 
 | 
			
		||||
@@ -42,6 +42,16 @@
 | 
			
		||||
        font-size: 72px;
 | 
			
		||||
      }
 | 
			
		||||
    </style>
 | 
			
		||||
    <script>
 | 
			
		||||
      function xssAttack() {
 | 
			
		||||
        const div = document.createElement('div');
 | 
			
		||||
        div.id = 'the-malware';
 | 
			
		||||
        div.className = 'malware';
 | 
			
		||||
        div.innerHTML = 'XSS Succeeded';
 | 
			
		||||
        document.getElementsByTagName('body')[0].appendChild(div);
 | 
			
		||||
        throw new Error('XSS Succeeded');
 | 
			
		||||
      }
 | 
			
		||||
    </script>
 | 
			
		||||
  </head>
 | 
			
		||||
  <body>
 | 
			
		||||
    <div>Security check</div>
 | 
			
		||||
 
 | 
			
		||||
@@ -42,6 +42,16 @@
 | 
			
		||||
        font-size: 72px;
 | 
			
		||||
      }
 | 
			
		||||
    </style>
 | 
			
		||||
    <script>
 | 
			
		||||
      function xssAttack() {
 | 
			
		||||
        const div = document.createElement('div');
 | 
			
		||||
        div.id = 'the-malware';
 | 
			
		||||
        div.className = 'malware';
 | 
			
		||||
        div.innerHTML = 'XSS Succeeded';
 | 
			
		||||
        document.getElementsByTagName('body')[0].appendChild(div);
 | 
			
		||||
        throw new Error('XSS Succeeded');
 | 
			
		||||
      }
 | 
			
		||||
    </script>
 | 
			
		||||
  </head>
 | 
			
		||||
  <body>
 | 
			
		||||
    <div>Security check</div>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										109
									
								
								cypress/platform/xss24.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										109
									
								
								cypress/platform/xss24.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,109 @@
 | 
			
		||||
<html>
 | 
			
		||||
  <head>
 | 
			
		||||
    <link href="https://fonts.googleapis.com/css?family=Montserrat&display=swap" rel="stylesheet" />
 | 
			
		||||
    <link href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css" rel="stylesheet" />
 | 
			
		||||
    <link
 | 
			
		||||
      rel="stylesheet"
 | 
			
		||||
      href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"
 | 
			
		||||
    />
 | 
			
		||||
    <link
 | 
			
		||||
      href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap"
 | 
			
		||||
      rel="stylesheet"
 | 
			
		||||
    />
 | 
			
		||||
    <style>
 | 
			
		||||
      body {
 | 
			
		||||
        /* background: rgb(221, 208, 208); */
 | 
			
		||||
        /* background:#333; */
 | 
			
		||||
        font-family: 'Arial';
 | 
			
		||||
        /* font-size: 18px !important; */
 | 
			
		||||
      }
 | 
			
		||||
      h1 {
 | 
			
		||||
        color: grey;
 | 
			
		||||
      }
 | 
			
		||||
      .mermaid2 {
 | 
			
		||||
        display: none;
 | 
			
		||||
      }
 | 
			
		||||
      .mermaid svg {
 | 
			
		||||
        /* font-size: 18px !important; */
 | 
			
		||||
      }
 | 
			
		||||
      .malware {
 | 
			
		||||
        position: fixed;
 | 
			
		||||
        bottom: 0;
 | 
			
		||||
        left: 0;
 | 
			
		||||
        right: 0;
 | 
			
		||||
        height: 150px;
 | 
			
		||||
        background: red;
 | 
			
		||||
        color: black;
 | 
			
		||||
        display: flex;
 | 
			
		||||
        display: flex;
 | 
			
		||||
        justify-content: center;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        font-family: monospace;
 | 
			
		||||
        font-size: 72px;
 | 
			
		||||
      }
 | 
			
		||||
    </style>
 | 
			
		||||
    <script>
 | 
			
		||||
      function xssAttack() {
 | 
			
		||||
        const div = document.createElement('div');
 | 
			
		||||
        div.id = 'the-malware';
 | 
			
		||||
        div.className = 'malware';
 | 
			
		||||
        div.innerHTML = 'XSS Succeeded';
 | 
			
		||||
        document.getElementsByTagName('body')[0].appendChild(div);
 | 
			
		||||
        throw new Error('XSS Succeeded');
 | 
			
		||||
      }
 | 
			
		||||
    </script>
 | 
			
		||||
  </head>
 | 
			
		||||
  <body>
 | 
			
		||||
    <div>Security check</div>
 | 
			
		||||
    <div class="flex">
 | 
			
		||||
      <div id="diagram" class="mermaid"></div>
 | 
			
		||||
      <div id="res" class=""></div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <script type="module">
 | 
			
		||||
      import mermaid from './mermaid.esm.mjs';
 | 
			
		||||
      mermaid.parseError = function (err, hash) {
 | 
			
		||||
        // console.error('Mermaid error: ', err);
 | 
			
		||||
      };
 | 
			
		||||
      mermaid.initialize({
 | 
			
		||||
        theme: 'forest',
 | 
			
		||||
        arrowMarkerAbsolute: true,
 | 
			
		||||
        // themeCSS: '.edgePath .path {stroke: red;} .arrowheadPath {fill: red;}',
 | 
			
		||||
        logLevel: 0,
 | 
			
		||||
        state: {
 | 
			
		||||
          defaultRenderer: 'dagre-wrapper',
 | 
			
		||||
        },
 | 
			
		||||
        flowchart: {
 | 
			
		||||
          // defaultRenderer: 'dagre-wrapper',
 | 
			
		||||
          nodeSpacing: 10,
 | 
			
		||||
          curve: 'cardinal',
 | 
			
		||||
          htmlLabels: true,
 | 
			
		||||
        },
 | 
			
		||||
        htmlLabels: false,
 | 
			
		||||
        // gantt: { axisFormat: '%m/%d/%Y' },
 | 
			
		||||
        sequence: { actorFontFamily: 'courier', actorMargin: 50, showSequenceNumbers: false },
 | 
			
		||||
        // sequenceDiagram: { actorMargin: 300 } // deprecated
 | 
			
		||||
        // fontFamily: '"times", sans-serif',
 | 
			
		||||
        // fontFamily: 'courier',
 | 
			
		||||
        fontSize: 18,
 | 
			
		||||
        curve: 'basis',
 | 
			
		||||
        securityLevel: 'strict',
 | 
			
		||||
        startOnLoad: false,
 | 
			
		||||
        secure: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize'],
 | 
			
		||||
        // themeVariables: {relationLabelColor: 'red'}
 | 
			
		||||
      });
 | 
			
		||||
      function callback() {
 | 
			
		||||
        alert('It worked');
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      let diagram = 'classDiagram\n';
 | 
			
		||||
      diagram += '`Class<img src=x on';
 | 
			
		||||
      diagram += 'error=xssAttack()>` <|-- `Class2<img src=x on';
 | 
			
		||||
      diagram += 'error=xssAttack()>`';
 | 
			
		||||
 | 
			
		||||
      console.log(diagram);
 | 
			
		||||
      // document.querySelector('#diagram').innerHTML = diagram;
 | 
			
		||||
      const { svg } = await mermaid.render('diagram', diagram);
 | 
			
		||||
      document.querySelector('#res').innerHTML = svg;
 | 
			
		||||
    </script>
 | 
			
		||||
  </body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -42,6 +42,16 @@
 | 
			
		||||
        font-size: 72px;
 | 
			
		||||
      }
 | 
			
		||||
    </style>
 | 
			
		||||
    <script>
 | 
			
		||||
      function xssAttack() {
 | 
			
		||||
        const div = document.createElement('div');
 | 
			
		||||
        div.id = 'the-malware';
 | 
			
		||||
        div.className = 'malware';
 | 
			
		||||
        div.innerHTML = 'XSS Succeeded';
 | 
			
		||||
        document.getElementsByTagName('body')[0].appendChild(div);
 | 
			
		||||
        throw new Error('XSS Succeeded');
 | 
			
		||||
      }
 | 
			
		||||
    </script>
 | 
			
		||||
  </head>
 | 
			
		||||
  <body>
 | 
			
		||||
    <div>Security check</div>
 | 
			
		||||
@@ -84,14 +94,6 @@
 | 
			
		||||
      function callback() {
 | 
			
		||||
        alert('It worked');
 | 
			
		||||
      }
 | 
			
		||||
      function xssAttack() {
 | 
			
		||||
        const div = document.createElement('div');
 | 
			
		||||
        div.id = 'the-malware';
 | 
			
		||||
        div.className = 'malware';
 | 
			
		||||
        div.innerHTML = 'XSS Succeeded';
 | 
			
		||||
        document.getElementsByTagName('body')[0].appendChild(div);
 | 
			
		||||
        throw new Error('XSS Succeeded');
 | 
			
		||||
      }
 | 
			
		||||
      let diagram = 'graph LR\n';
 | 
			
		||||
      diagram += 'B-->D("<img onerror=location=`java';
 | 
			
		||||
      // diagram += "script\u003aalert\u0028document.domain\u0029\` src=x>\"\);\n";
 | 
			
		||||
 
 | 
			
		||||
@@ -42,6 +42,16 @@
 | 
			
		||||
        font-size: 72px;
 | 
			
		||||
      }
 | 
			
		||||
    </style>
 | 
			
		||||
    <script>
 | 
			
		||||
      function xssAttack() {
 | 
			
		||||
        const div = document.createElement('div');
 | 
			
		||||
        div.id = 'the-malware';
 | 
			
		||||
        div.className = 'malware';
 | 
			
		||||
        div.innerHTML = 'XSS Succeeded';
 | 
			
		||||
        document.getElementsByTagName('body')[0].appendChild(div);
 | 
			
		||||
        throw new Error('XSS Succeeded');
 | 
			
		||||
      }
 | 
			
		||||
    </script>
 | 
			
		||||
  </head>
 | 
			
		||||
  <body>
 | 
			
		||||
    <div>Security check</div>
 | 
			
		||||
 
 | 
			
		||||
@@ -42,6 +42,16 @@
 | 
			
		||||
        font-size: 72px;
 | 
			
		||||
      }
 | 
			
		||||
    </style>
 | 
			
		||||
    <script>
 | 
			
		||||
      function xssAttack() {
 | 
			
		||||
        const div = document.createElement('div');
 | 
			
		||||
        div.id = 'the-malware';
 | 
			
		||||
        div.className = 'malware';
 | 
			
		||||
        div.innerHTML = 'XSS Succeeded';
 | 
			
		||||
        document.getElementsByTagName('body')[0].appendChild(div);
 | 
			
		||||
        throw new Error('XSS Succeeded');
 | 
			
		||||
      }
 | 
			
		||||
    </script>
 | 
			
		||||
  </head>
 | 
			
		||||
  <body>
 | 
			
		||||
    <div>Security check</div>
 | 
			
		||||
 
 | 
			
		||||
@@ -42,6 +42,16 @@
 | 
			
		||||
        font-size: 72px;
 | 
			
		||||
      }
 | 
			
		||||
    </style>
 | 
			
		||||
    <script>
 | 
			
		||||
      function xssAttack() {
 | 
			
		||||
        const div = document.createElement('div');
 | 
			
		||||
        div.id = 'the-malware';
 | 
			
		||||
        div.className = 'malware';
 | 
			
		||||
        div.innerHTML = 'XSS Succeeded';
 | 
			
		||||
        document.getElementsByTagName('body')[0].appendChild(div);
 | 
			
		||||
        throw new Error('XSS Succeeded');
 | 
			
		||||
      }
 | 
			
		||||
    </script>
 | 
			
		||||
  </head>
 | 
			
		||||
  <body>
 | 
			
		||||
    <div>Security check</div>
 | 
			
		||||
 
 | 
			
		||||
@@ -42,6 +42,16 @@
 | 
			
		||||
        font-size: 72px;
 | 
			
		||||
      }
 | 
			
		||||
    </style>
 | 
			
		||||
    <script>
 | 
			
		||||
      function xssAttack() {
 | 
			
		||||
        const div = document.createElement('div');
 | 
			
		||||
        div.id = 'the-malware';
 | 
			
		||||
        div.className = 'malware';
 | 
			
		||||
        div.innerHTML = 'XSS Succeeded';
 | 
			
		||||
        document.getElementsByTagName('body')[0].appendChild(div);
 | 
			
		||||
        throw new Error('XSS Succeeded');
 | 
			
		||||
      }
 | 
			
		||||
    </script>
 | 
			
		||||
  </head>
 | 
			
		||||
  <body>
 | 
			
		||||
    <div>Security check</div>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user