Angular xavfsizlik
Angular shablonlarni bog‘lashni tozalash orqali XSS dan himoya qiladi.
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>
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!
