【问题标题】:Angular 7 How To Access Domsanitizer Object inside a static functionAngular 7 如何在静态函数中访问 Domsanitizer 对象
【发布时间】:2021-06-25 08:05:15
【问题描述】:

我正在尝试解决 checkmarx 问题,即应用程序在生成的输出中嵌入了不受信任的数据。这些不受信任的数据直接嵌入到输出中,没有经过适当的清理或编码,从而使攻击者能够将恶意代码注入到输出中。所以防止这种情况我正在使用 Angular 7 Domsanitizer。所以checkmarx错误出现在这一行

const search = new URLSearchParams(window.location.search)

我的完整代码-:

Utils.ts

 import { DomSanitizer } from '@angular/platform-browser';

export class Utils {

    static _sanitize:any;
    constructor(private cookieService: CookieService,sanitizer: DomSanitizer) { 
          Utils._sanitize = sanitizer
    }

static getParam(param: string): string | null {
        
        if (window.location.search) {
            const search = new URLSearchParams(Utils._sanitize.bypassSecurityTrustUrl(window.location.search));
            const value = search.get(param);
            return value && value !== 'null' && value !== 'undefined' ? value : null;
        }
        return null;
    }

但在这种情况下,我收到错误,即 bypassSecurityTrustUrl 未定义为在静态函数内部未获得 DomSanitizer 对象。 此外,我无法在参数中传递 Utils._sanitizer,因为整个项目中的许多文件都可以访问此函数。请帮忙并提出一些建议

【问题讨论】:

    标签: angular static-functions angular-dom-sanitizer


    【解决方案1】:

    您需要将sanitizer: DomSanitizer 设为私有,以使其在代码中可访问:private sanitizer: DomSanitizer

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-29
      • 1970-01-01
      • 2018-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-30
      • 1970-01-01
      相关资源
      最近更新 更多