Cara menggunakan sanitize html angular 8

Dengan menggunakan tutorial ini, Kita akan membahas konsep "Contoh AngularJS untuk Sanitasi HTML di dalam Form Input Field Menggunakan Perpustakaan angular-sanitize di Browser". Mari kita mulai diskusi untuk melakukan tugas di bawah ini

Cara menggunakan sanitize html angular 8
Cara menggunakan sanitize html angular 8

Isi

Contoh AngularJS untuk Sanitasi HTML di dalam Form Input Field Menggunakan angular-sanitize Library di Browser

indeks. html

<html>
<head>
    <meta charset="utf-8">
    <script src="https://code.angularjs.org/1.0.2/angular.js"></script>
    <script src="https://code.angularjs.org/1.0.2/angular-sanitize.js"></script>
    <script src="app.js"></script>
</head>
<body ng-app="expressionsEscaping" ng-controller="ExpressionsEscapingCtrl">
  <div class="container">
  <h2>Angular Quick Guide - $sanitize</h2>
  
    <p ng-bind="msg"></p>
    <p ng-bind-html-unsafe="msg"></p>
    <p ng-bind-html="msg"></p>
    <p ng-bind-html-unsafe="safeMsg"></p>
    
       <div style="margin-top: 20px;">Sponsored by <a onclick="window.open('https://www.solargalore.com.au')">Solar Galore</a></div></div> 
</div>    
</body>
</html>

<script>

angular.module('expressionsEscaping', ['ngSanitize'])
  .controller('ExpressionsEscapingCtrl', function ($scope, $sanitize) {
    $scope.msg = 'Hello, <b>World</b>!';
    $scope.safeMsg = $sanitize($scope.msg);
  });

</script>

Pikiran Akhir

Saya harap artikel ini membantu Anda mempelajari "Sanitasi HTML di dalam Bidang Input Formulir Menggunakan Perpustakaan angular-sanitize di Browser dalam Contoh AngularJS". Jika Anda menghadapi masalah apa pun, beri tahu saya melalui bagian komentar. Bagikan artikel ini dengan pengembang Angular lainnya melalui jejaring sosial. Terima kasih

Saat Anda membiarkan AngularJS menulis HTML di aplikasi Anda, Anda harus memeriksa HTML untuk kode berbahaya. Dengan memasukkan "sudut-santize. js" di aplikasi Anda, Anda dapat melakukannya dengan menjalankan kode HTML melalui fungsi ngSanitize

Mengapa beberapa gaya Anda tidak berfungsi lagi saat menggunakan [innerHtml] untuk menampilkan beberapa konten HTML? . Ini adalah fitur yang hebat - tetapi memiliki bug/fitur yang cukup mengganggu karena jika Anda memiliki elemen dengan gaya sebaris, gaya tersebut akan dihapus dari halaman Anda. Dilihat dari banyaknya pertanyaan tentang cara mematikannya, jelas ada kekurangannya. Yang mengatakan, saya sangat menghargai Angular devs membangun ini untuk melindungi sebagian besar dari kita dari melakukan sesuatu yang konyol di webapp mereka

Pendekatan termudah adalah menonaktifkan DOMSanitizer dan pendekatan yang disarankan pada Stack Overflow adalah membuat pipa safeHtml sehingga Anda dapat menulis

Ini beberapa baris kode jika Anda hanya ingin memasukkannya - lihat jawabannya di sini

Namun sebelum terjun langsung ke solusi yang menonaktifkan fitur keamanan yang diaktifkan secara default, mari pikirkan sejenak tentang apa yang sedang kita lakukan.

Mengapa menonaktifkannya sama sekali?

Kasus penggunaan yang saya (dan tampaknya banyak lainnya) miliki adalah saya ingin menampilkan konten HTML yang dibuat pengguna - mulai dari cuplikan kecil hingga seluruh halaman HTML. Masalahnya adalah DomSanitizer terlalu banyak menghapus HTML saya, dan tidak ada cara untuk mengonfigurasi aturannya. Dalam kasus saya, saya memiliki bentang dengan atribut gaya sebaris serta

Ingin merender beberapa data yang disediakan pengguna ke halaman, tetapi karena alasan apa pun, Anda tidak dapat menggunakan {{ curly brace syntax }} Angular?

Mungkin pikiran pertama Anda adalah menyatukannya dengan seutas tali, seperti ini

var content = "<span>" + userContent + "</span>";
element.text(content);
_

Tetapi berhati-hatilah. Hal semacam ini dapat membuka Anda terhadap serangan XSS dan hal-hal buruk lainnya

Anda harus keluar atau membersihkan data itu sebelum menempatkannya di halaman

Membersihkan

Angular secara otomatis membersihkan data jika Anda menggunakan direktif ng-bind-html. Ini berarti menghapus HTML seluruhnya

Serangkaian Hello <em>World!</em> menjadi Hello World

Sanitasi Secara Manual

Jika Anda ingin membersihkan data tanpa menggunakan ng-bind-html, Anda dapat menggunakan layanan $sanitize. Instal dan minta modul sebagai ketergantungan

bower install angular-sanitize

function yourThing($sanitize) {
  return {
    function getContent(str) {
      return "<span>" + $sanitize(str) + "</span>";
    }
  };
}
0

Kemudian cukup suntikkan di tempat yang dibutuhkan, dan gunakan

function yourThing($sanitize) {
  return {
    function getContent(str) {
      return "<span>" + $sanitize(str) + "</span>";
    }
  };
}

Melarikan diri

Angular secara otomatis mengeluarkan data jika Anda menggunakan

function yourThing($sanitize) {
  return {
    function getContent(str) {
      return "<span>" + $sanitize(str) + "</span>";
    }
  };
}
1 atau {{ curly brace syntax }}. Ini berarti menampilkan karakter literal alih-alih menafsirkannya sebagai HTML

Data yang terlihat seperti Hello <em>World!</em> akan dirender sebagai Hello <em>World!</em> (bukan Hello World)

Melarikan diri secara manual

Angular tampaknya tidak mengekspos layanan bawaan untuk keluar. Namun Lodash (v3) memiliki fungsi

function yourThing($sanitize) {
  return {
    function getContent(str) {
      return "<span>" + $sanitize(str) + "</span>";
    }
  };
}
5 yang melakukan persis seperti ini

Instal Lodash jika Anda belum menggunakannya.

function yourThing($sanitize) {
  return {
    function getContent(str) {
      return "<span>" + $sanitize(str) + "</span>";
    }
  };
}
6

Kemudian lepaskan string Anda sesuai kebutuhan

function yourThing() {
  return {
    function getContent(str) {
      return "<span>" + _.escape(str) + "</span>";
    }
  };
}

Dan dengan itu, Anda dan pengguna Anda aman untuk hari lain

Jika Anda ingin posting saya yang dijadwalkan secara rutin tentang praktik terbaik Angular, serta dunia baru Angular 2, daftar ke buletin saya di bawah ini

Terima kasih sudah membaca

Kesuksesan. Sekarang periksa email Anda

Pelajari dasar-dasar React dalam 5 hari

Akhirnya mengerti bagaimana React bekerja. Kamu akan

🎉 Dapatkan sesuatu di layar

💄 Tulis komponen dinamis

🏃 Jadikan interaktif

😎 Ambil data nyata

🛳 Taruh online

5 hari, 5 email. Pergi dengan dasar-dasar dan rencana

Dapatkan Pelajaran 1 sekarang juga 👇

Terjadi kesalahan saat mengirimkan langganan Anda. Silakan coba lagi

Alamat email

Kirimi Saya Pelajaran 1

saya menghargai privasi surat elektronik Anda. Berhenti berlangganan kapan saja

Sebelum kita melanjutkan, saya harus bertanya

izin


Terjadi kesalahan saat mengirimkan langganan Anda. Silakan coba lagi

Menyelesaikan

Mempelajari React bisa menjadi perjuangan — begitu banyak pustaka dan alat
Saranku? . )
Untuk pendekatan langkah demi langkah, lihat lokakarya Pure React saya

Cara menggunakan sanitize html angular 8

Belajar berpikir dalam Bereaksi

  • 90+ pelajaran siaran layar
  • Transkrip lengkap dan teks tertutup
  • Semua kode dari pelajaran
  • Wawancara pengembang
Mulailah belajar Pure React sekarang

Pure React karya Dave Ceddia adalah karya yang sangat jelas dan mendalam. Hormat. Saya seorang pelatih React di London dan akan sangat merekomendasikan ini kepada semua pengembang front-end yang ingin meningkatkan atau mengkonsolidasikan