Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Angular 5应用程序中从Spring Boot API获取HTML文件时,某些属性会被删除_Java_Html_Angular_Rest_Spring Boot - Fatal编程技术网

Java 在Angular 5应用程序中从Spring Boot API获取HTML文件时,某些属性会被删除

Java 在Angular 5应用程序中从Spring Boot API获取HTML文件时,某些属性会被删除,java,html,angular,rest,spring-boot,Java,Html,Angular,Rest,Spring Boot,当通过前端带有Angular 4 app的API从Spring Boot后端获取HTML文件时,类型为id、name、data-*的HTML标记属性被剥离,但class属性类型仍然保留。这是什么原因,因为我似乎找不到它?如果您的意思是当您绑定到模板中某个元素的innerHTML时,属性被剥离,那么这些属性似乎是消毒器不允许的。可能主要是因为它们在Angular应用程序中并不实用。我不知道id和data是否也被认为是潜在的不安全因素。我知道表单、输入、按钮等都是无用的name 允许的属性列在htm

当通过前端带有Angular 4 app的API从Spring Boot后端获取HTML文件时,类型为
id
name
data-*
的HTML标记属性被剥离,但
class
属性类型仍然保留。这是什么原因,因为我似乎找不到它?

如果您的意思是当您绑定到模板中某个元素的innerHTML时,属性被剥离,那么这些属性似乎是消毒器不允许的。可能主要是因为它们在Angular应用程序中并不实用。我不知道
id
data
是否也被认为是潜在的不安全因素。我知道表单、输入、按钮等都是无用的
name

允许的属性列在html_sanitizer.ts()中:


如果您确实需要id、名称或数据属性(为什么会这样?),并且可以信任您的html 110%,即它不是来自任何用户输入,或者您已经在服务器端对其进行了清理,则可以在绑定(或在管道中)之前使用它调用domsanizer.bypassSecurityTrustHtml()保持html不变。

Angular HttpClient肯定不会这样做,它不会触及任何html,它将其视为纯文本,即一个字符串。如果您在浏览器开发工具中检查响应,这些属性是否已经在服务器端剥离?
const HTML_ATTRS = tagSet('abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,' 
+ 'compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,' +   'ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,' +    'scope,scrolling,shape,size,sizes,span,srclang,start,summary,tabindex,target,title,translate,type,usemap,' +
    'valign,value,vspace,width');