[Tutorial JS]JSLR - biblioteca Javascript

#1
Nume Tutorial: JSLR - biblioteca Javascript ce este inceputul sfarsitului vulnerabilitatilor XSS
Descriere: JSLR - biblioteca Javascript ce este inceputul sfarsitului vulnerabilitatilor XSS
Download:
Autor: Anonim
Sursa (Link-ul oficial):
tutorialeonline
Propria parere: Folositor.
Tutorialul:

JSLR, termen derivat din ASLR (Address space layout randomization) este o abordare ce presupune randomizarea unor tag-uri și atribute astfel încât atacatorul să nu poate injecta cod HTML/Javascript malițios fără să știe token-ul generat. Este foarte ușor de implementat pentru că orice website poate fi rescris, adăugând un id ce confirmă validitatea tag-ului. De asemenea, o procedură similară trebuie folosită și pentru atributele tagurilor.

Biblioteca interceptează codul HTML înainte de a fi randat de browser, folosind un element plaintext, DOM-ul este folosit pentru a crea o copie a HTML-ului înainte de a adăuga codul înapoi. Se activează JSLR pentru a verifica integritatea fiecărui atribut și tag.
Exemplu de fișier protejat de JSLR

Este foarte important să adaugi X-Frame-Options și X-XSS-Protection: 1;mode=block pentru a fi siguri că atacatorul nu modifică comportamentul bibliotecii JSLR.

Cod: Selectaţi tot

<?php
  require('jslr.inc.php');
  $JSLR = new JSLR;
  ?>
  <!doctype html>
  <html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; />
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  <title>JSLR</title>
  <script src="<?php $JSLR->getWebPath()?>jslr.js" type="text/javascript"></script>
  <script type="text/javascript">
  try {
     JSLR=JSLR('<?php $JSLR->getID()?>','<?php $JSLR->getSingleQuoteID()?>','<?php echo $JSLR->doubleQuote?>');
  } catch(e) {
     document.write('<plaintext>Error unable to find JSLR. Check the web path.');
  }
  </script>
  </head>
  <body>
  <iframe <?php $JSLR->getID()?>_src="http://www.microsoft.com/"></iframe>
</body>

</html>
Limitări

În varianta existentă, JSLR poate rula doar în browserele moderne, orice browser ce nu suportă evenimentul DOMContentLoaded nu va putea rula, dar această limitare va fi scoasă pe parcurs iar JSLR va putea fi folosit pentru orice browser până la IE6. Evident, că browserele trebuie să ofere libertatea ca biblioteca să aibă acces complet asupra DOM-ului. De asemenea, orice injecție deasupra scriptului JSLR va face bypass la protecție pentru că vectorul va fi randat înainte că JSLR să apuce să-l protejeze.

Înapoi la “Tutoriale JS”

Cine este conectat

Utilizatori răsfoind acest forum: Niciun utilizator înregistrat și 2 vizitatori