在Web应用程序中,我的客户端(基于angularjs)从Web服务接收json数据。 Json可以包含带有一些url的文本字段;例如:
blah blah ... http://www.example.com blah blah blah ...
我需要将此链接呈现为html,因此我需要用html标记替换url。 要弄清楚,按照要点后,我尝试按照过滤器进行操作:
botino.filter('parseUrl', function($sce) {
replacePattern1 = /(\b(https?|ftp):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gim;
return function(text, target, otherProp) {
angular.forEach(text.match(replacePattern1), function(url) {
text = text.replace(replacePattern1, '<a href="$1" target="_blank">$1</a>');
});
text = $sce.trustAsHtml(text);
return text;
};
});
这样,在我使用的html页面上:
<span ng-bind-html="tweet.text | parseUrl"></span>
等工作。
我的问题是这个实施有多安全?任何人都可以恶意使用它吗? 也许有人可以建议我找出解决这个问题的更好方法吗?
答案 0 :(得分:0)
如果解析发生在后端,我应该更加关注。如果这发生在javascript方面,我应该相信那些分享网址的人。