2016-01-20 56 views
-1

我使用html製作了表單,並使用angularjs將數據發佈到後端。我想在發佈到後端之前轉義html標籤。我該怎麼做呢?從用戶填寫的表格清理或轉義html標籤

如果示例用戶帖子像

<p> hello world </p> 

應該被髮送到服務器一樣

&lt;p&gt; hello world &lt;/p&gt; 
+0

你不應該信任客戶端(JS)這種類型的任務 –

回答

0

ngSanitize應該做的伎倆。請參閱link

這裏有一種方法可以從客戶端進行。

var app = angular.module('app',[]); app.controller( 'myCtrl',[ '$範圍',函數($範圍){

$scope.htmlText = "<p> Let's see</p>"; 

    $scope.htmlEncode = function(){ 
    var safeString = $('<div>').text($scope.htmlText).html(); 
    // if you don't have jquery the use the following 
    //safeString = $scope.htmlText.replace('<', '&lt;').replace('>', '&gt;');//and so on for other html special characters. 
    alert(safeString); 
    }; 
}]); 

plnkr

+0

我想在發送到後端時轉義字符串。 – Hacker

+0

我不確定你要發佈的內容。我假設你期待在你的輸入字段的HTML,如果是這樣的話[查看發佈的問題](http://stackoverflow.com/questions/25940681/angularjs-strip-html-filter-on-ng-options) – SadiRubaiyet

0

(現在的問題是在自答案更新到不同的區域)不建議

使用PHP Sanitize Filters在服務器端過濾用戶輸入。

使用在客戶端的任何衛生工具,因爲該腳本可以被修改,以igno由惡意用戶來重新制作。

+0

理想情況下,它應該在服務器端完成。如果我想在客戶端做。我該怎麼做? – Hacker

+0

在自定義表單驗證器中使用$ sanitize。 –