Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/dom/security/test/csp/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 3 kB image not shown  

Quelle  test_meta_header_dual.html   Sprache: HTML

 
 products/Sources/formale Sprachen/C/Firefox/dom/security/test/csp/test_meta_header_dual.html


<!DOCTYPE HTML>
<html>
<head>
  <meta charset="utf-8">
  <title>Bug 663570 - Implement Content Security Policy via meta tag</title>
  <!-- Including SimpleTest.js so we can use waitForExplicitFinish !-->
  <script src="/tests/SimpleTest/SimpleTest.js"></script>
  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<p id="display"></p>
<iframe style="width:100%;" id="testframe"></iframe>

<script class="testbody" type="text/javascript">

/* Description of the test:
 * We test all sorts of CSPs on documents, including documents with no
 * CSP, with meta CSP and with meta CSP in combination with a CSP header.
 */

const TESTS = [
  {
    /* load image without any CSP */
    query: "test1",
    result: "img-loaded",
    policyLen: 0,
    desc: "no CSP should allow load",
  },
  {
    /* load image where meta denies load */
    query: "test2",
    result: "img-blocked",
    policyLen: 1,
    desc: "meta (img-src 'none') should block load"
  },
  {
    /* load image where meta allows load */
    query: "test3",
    result: "img-loaded",
    policyLen: 1,
    desc: "meta (img-src http://mochi.test) should allow load"
  },
  {
    /* load image where meta allows but header blocks */
    query: "test4", // triggers speculative load
    result: "img-blocked",
    policyLen: 2,
    desc: "meta (img-src http://mochi.test), header (img-src 'none') should block load"
  },
  {
    /* load image where meta blocks but header allows */
    query: "test5", // triggers speculative load
    result: "img-blocked",
    policyLen: 2,
    desc: "meta (img-src 'none'), header (img-src http://mochi.test) should block load"
  },
  {
    /* load image where meta allows and header allows */
    query: "test6", // triggers speculative load
    result: "img-loaded",
    policyLen: 2,
    desc: "meta (img-src http://mochi.test), header (img-src http://mochi.test) should allow load"
  },
  {
    /* load image where meta1 allows but meta2 blocks */
    query: "test7",
    result: "img-blocked",
    policyLen: 2,
    desc: "meta1 (img-src http://mochi.test), meta2 (img-src 'none') should allow blocked"
  },
  {
    /* load image where meta1 allows and meta2 allows */
    query: "test8",
    result: "img-loaded",
    policyLen: 2,
    desc: "meta1 (img-src http://mochi.test), meta2 (img-src http://mochi.test) should allow allowed"
  },
];

var curTest;
var counter = -1;

function finishTest() {
  window.removeEventListener("message", receiveMessage);
  SimpleTest.finish();
}

function checkResults(result) {
  // make sure the image got loaded or blocked
  is(result, curTest.result, curTest.query + ": " + curTest.desc);

  if (curTest.policyLen != 0) {
    // make sure that meta policy got not parsed and appended twice
    try {
      // get the csp in JSON notation from the principal
      var frame = document.getElementById("testframe");
      var contentDoc = SpecialPowers.wrap(frame.contentDocument);
      var cspOBJ = JSON.parse(contentDoc.cspJSON);
      // make sure that the speculative policy and the actual policy
      // are not appended twice.
      var policies = cspOBJ["csp-policies"];
      is(policies.length, curTest.policyLen, curTest.query + " should have: " + curTest.policyLen + " policies");
    }
    catch (e) {
      ok(false, "uuh, something went wrong within cspToJSON in " + curTest.query);
    }
  }
  // move on to the next test
  runNextTest();
}

// a postMessage handler used to bubble up the
// onsuccess/onerror state from within the iframe.
window.addEventListener("message", receiveMessage);
function receiveMessage(event) {
  checkResults(event.data.result);
}

function runNextTest() {
  if (++counter == TESTS.length) {
    finishTest();
    return;
  }
  curTest = TESTS[counter];
  // load next test
  document.getElementById("testframe").src = "file_meta_header_dual.sjs?" + curTest.query;
}

// start the test
SimpleTest.waitForExplicitFinish();
runNextTest();

</script>
</body>
</html>

Messung V0.5
C=80 H=100 G=90

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.