lint 错误阻止做了一些研究,但没有成功

Posted

技术标签:

【中文标题】lint 错误阻止做了一些研究,但没有成功【英文标题】:lint errors blocking did some research but not successful 【发布时间】:2018-03-03 10:02:43 【问题描述】: 我是 tslint 和 typescript 的新手。 我正在尝试修复此错误。 你能告诉我如何解决它吗? 我做了一些研究,但找不到解决方案。 在下面提供代码。

(no-inner-html) app/components/sports.ts[717, 9]:使用 html() 函数将字符串写入 innerHTML 是不安全的:$('.tubing').html(health.标题)

if (health.title == "waterS") 
      let that = this;
      let recordPlayersWeight = ;
      this.futureParrot = [];
      this.pastParrot = [];
      this.peacockService.getResponse(health.url, 'get', null)
        .subscribe(recordPlayersWeight => 
            this.gridData = recordPlayersWeight.waterDtos;
            that._recordPlayersWeightSource.recordPlayersWeight(this.gridData);
          ,
          err => 
          
        );
    

    that.window = $("#TigerwatersPopup");
    that.window.kendoWindow(
      width: "60%",
      title: false,
      visible: false,
      resizable: false,
      actions: [],
      draggable: false,
      modal: true,
      open: function() 
        $("html, body").css("overflow", "hidden");
        that.isVisible = true;
        $('.tubing').html(health.title);

【问题讨论】:

见***.com/questions/26990899/… 【参考方案1】:

当您使用 jQuery 的 .html() 函数时,可能会不小心将“不安全”元素添加到您的页面,例如 iframe 标签或源标签。如果您添加的 html 是由恶意用户提交的(例如,作为查询的一部分或在表单中输入的数据),那么您就是在为他们提供攻击您的方法。这是一种代码注入攻击(见https://en.wikipedia.org/wiki/Code_injection)。

在您的情况下,您似乎只是想将纯文本放入 .tubing 元素中,所以这样做更安全

$('.tubing').text( health.title );

它的作用是“转义”任何 HTML 特殊字符,例如 <>,以便它们显示为文本而不是被视为元素。这是安全的,可以防止攻击者注入代码,并且不会触发 lint 规则。

【讨论】:

感谢您的回复...我又遇到了一个错误,您能告诉我如何解决它 无法在构造函数中声明属性“waterService” 这不在您发布的代码中,所以我无能为力。也许再问一个问题。您收到的错误应该会提示您导致问题的文件和行。 嘿它发生在这一行构造函数(公共水服务:WATERService)你能帮我吗

以上是关于lint 错误阻止做了一些研究,但没有成功的主要内容,如果未能解决你的问题,请参考以下文章

尽管上传成功,但调用了 AFNetworking 2.0 POST + PHP 阻止失败

Cocoapod“pod spec lint”CompileSwift返回了一个不成功的退出代码

XmppFramework 显示错误

表单提交后返回“成功”消息

CORS 预检响应未成功

为什么要阻止canActivate总是返回false?