angularjs – Angular sce.trustAsUrl和javascript hrefs
发布时间:2020-12-17 18:03:28 所属栏目:安全 来源:网络整理
导读:我正在尝试创建一个具有书签的页面,如下所示: a ng-href="{{getBookmarklet()}}"Bookmarklet/afunction MyCtrl($scope) { $scope.getBookmarklet = function() { return 'javascript:alert(1)'; }} href被清理为不安全:javascript:alert(1).所以,我尝试过
我正在尝试创建一个具有书签的页面,如下所示:
<a ng-href="{{getBookmarklet()}}">Bookmarklet</a> function MyCtrl($scope) { $scope.getBookmarklet = function() { return 'javascript:alert(1)'; } } href被清理为不安全:javascript:alert(1).所以,我尝试过使用sce.trustAs来防止这种情况: function MyCtrl($scope,$sce) { $scope.getBookmarklet = function() { return $sce.trustAsUrl('javascript:alert(1)'); } } 但是,我仍然在我的网址上获得“不安全”前缀.我也尝试过trustAsJs,没有运气.我不想在我的应用程序中使用compileProvider将javascript:URL列入白名单,只需允许这一个实例. 解决方法
我遇到了这个问题,并且能够通过使用$sce.trustAsHtml()来解决它.
JS: function MyCtrl($scope,$sce) { $scope.getBookmarklet = function() { return $sce.trustAsHtml('<a href="javascript:alert(1)">Bookmarklet</a>'); } } HTML: <ng-bind-html ng-bind-html="::getBookmarklet()"></ng-bind-html> 这可能会引起CSS和其他指令的问题,但这些问题通常可以解决. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |