programing

AngularJS: "안전한 컨텍스트에서 안전하지 않은 값 사용 시도" 해결 방법

elseif 2023. 3. 20. 21:37

AngularJS: "안전한 컨텍스트에서 안전하지 않은 값 사용 시도" 해결 방법

데이터를 text-html로 표시하려고 하면 HTML 형식으로 표시되지만 페이지를 새로 고쳤을 때 다음 오류가 나타납니다.

[$sce:unsafe] 안전한 컨텍스트에서 안전하지 않은 값을 사용하려고 합니다.

여기 내 앵글이 있어JS 코드:

data.attributes.task_name = $sce.trustAsHtml(data.attributes.task_name);

HTML

<span ng-bind-html="taskdata.attributes.task_name" data-html="true" title="{{reminder.attributes.message}}"></span>

Angular 문서에서 다음을 수행합니다.

특정 컨텍스트에서 사용하기 위해 제공된 값이 사용에 대해 안전하거나 신뢰할 수 있는 값을 찾을 수 없습니다.

AngularJS의 Strict Contextual Escape(SCE) 모드(디폴트로 유효)에서는 특정 컨텍스트에서의 바인딩이 필요하며 이러한 컨텍스트에서 사용해도 안전한 값으로 신뢰됩니다.(예: 각도 로드)URL의 JS 템플릿에서는 URL이 리소스를 로드하기에 안전한 것으로 간주되어야 합니다.)

이를 통해 XSS 및 기타 보안 문제를 방지할 수 있습니다.Strict Contextual Escape(SCE; 엄밀한 컨텍스트 이스케이프)에서 자세히 보기

다음을 포함할 수 있습니다.ngSanitizemodule을 사용하여 자동 saniting을 수행합니다.


다음을 포함해야 합니다.

index.html에 로드합니다.

<script src="lib/angular/angular-sanitize.min.js"></script>

app.js에 의존관계로 삽입:

angular.module('myApp', ['...', 'ngSanitize']);

언급URL : https://stackoverflow.com/questions/41996899/angularjs-how-to-resolve-attempting-to-use-an-unsafe-value-in-a-safe-context