Angular xavfsizlik


Angular shablonlarni bog‘lashni tozalash orqali XSS dan himoya qiladi.


ULASHISH

Xavfsizlik asoslari

  • XSS himoyasi: Angular skriptni kiritishni blokirovka qilish uchun shablonlarni bog‘lashni tozalaydi.
  • Sanitizatsiya: DOMga yozishdan oldin xavfli qiymatlar o‘chiriladi yoki o‘zgartiriladi.
  • Xususiyat bog‘lash: URL/HTML uchun stringlarni birlashtirish o‘rniga xususiyat bog‘lashdan (property binding) foydalaning.
  • Aylanib o‘tishdan saqlaning: DomSanitizerdan faqat tekshirilgan, kamdan-kam hollarda foydalaning.
// Angular sanitizes [innerHTML], [href], [src]
@Component({ template: `<div [innerHTML]="html"></div>` })
class C { html = '<b>Hello</b> <script>alert(1)</script>'; }

Aloqador: HTTP va shablonlarga qarang.

Maslahat: [href]/[src]/[innerHTML] bilan bog‘lang va Angular-ni tozalashga ruxsat bering.

DomSanitizerdan faqat kamdan-kam hollarda, tekshirilgan hollarda foydalaning.


Sanitizatsiya asoslari

// Property binding runs the sanitizer
<img [src]="photoUrl" alt="...">
<a [href]="profileUrl">Profile</a>

Misol

import { bootstrapApplication } from '@angular/platform-browser';
import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  standalone: true,
  template: `
    <h3>Sanitized HTML</h3>
    <div [innerHTML]="html"></div>
  `
})
class App {
  html = `Hello <script>alert('xss')</script>`;
}

bootstrapApplication(App);
<app-root></app-root>

Misolni ishga tushirish »

Misol tushuntirildi

  • [innerHTML]: Angular xavfli tarkibni (masalan, skriptlar) olib tashlab, bog‘langan HTMLni tozalaydi.
  • Xususiyatni bog‘lash: dezinfektsiyalash vositasi ishlashi uchun [innerHTML]/[href]/[src] dan foydalaning.
  • Interpolyatsiya: {{ ... }} sukut bo‘yicha HTMLdan chiqib ketadi; xavfsiz HTML kiritish uchun ulanishlardan foydalaning.

Asosiy fikrlar:

  • Angular [innerHTML], [src] va [href] bilan bog‘langan qiymatlarni tozalaydi.
  • HTML/URL uchun stringlarni birlashtirishdan saqlaning.
  • Sanitizer ishlashi uchun xususiyatni bog‘lashdan foydalaning.
  • Sanitizerni chetlab o‘tishdan saqlaning; Xavfsiz ma’lumotlar oqimi va shablonlardan foydalaning.


Xavfsiz DOM API

  • Sanitizer ishlashini ta’minlash uchun URL va HTML uchun xususiyat bog‘lashlaridan foydalaning.
  • DomSanitizer.bypassSecurityTrust* dan har qanday foydalanishni tekshirish; hujjat doirasi va mantiqiy asoslari.
  • Bypassni kichik yordamchi dasturlarga kiritilgan tekshirilgan, statik kontent yo‘llari bilan cheklang.
import { DomSanitizer } from '@angular/platform-browser';

// Use: [href]="safeUrl" with validated values
// Avoid bypass unless strictly necessary and audited:
// const safe = sanitizer.bypassSecurityTrustUrl(untrusted);

Ko‘rsatmalar:

  • Ishonchsiz/foydalanuvchi ma’lumotlarini bypassSecurityTrust* ga o‘tkazmang.
  • Faqat tekshirilgan, statik manbalar uchun chetlab o‘ting; sharhlar bilan kichik yordamchi dasturga kiriting.
  • Kontent xavfsizligi siyosatini (CSP) yoqish; kuchli XSS himoyasi uchun Ishonchli turlarni ko‘rib chiqing.


W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!