2014-01-25 173 views
0

如何檢查字符串是否包含任何標籤<>。我需要從xss攻擊或類似攻擊中清理我的字符串。 我正在尋找一種可以在javascript和php中對字符串進行santize的函數。消毒php和javascript中的字符串

這是我的Java腳本,請讓我知道這是否正確?

function parseThisString(strcode) { 
    var scripts = new Array();   
    while(strcode.indexOf("<") > -1 || strcode.indexOf("</") > -1) { 
     var s = strcode.indexOf("<"); 
     var s_e = strcode.indexOf(">", s); 
     var e = strcode.indexOf("</", s); 
     var e_e = strcode.indexOf(">", e); 
     scripts.push(strcode.substring(s_e+1, e)); 
     strcode = strcode.substring(0, s) + strcode.substring(e_e+1); 
    } 
    if (scripts.length > 0) { return 1; } else { return 0; } 
} 

你們可以告訴我任何固體字符串消毒功能在PHP?我找到了這個答案,但我不知道如何用0或1(是或否)將此函數轉換爲單個返回值。 What is the correct way to detect whether string inputs contain HTML or not?

請幫我這裏。謝謝。

+0

通過消毒,做你想要做的HTML「安全」,這樣就可以輸出到頁面上,你想刪除所有的HTML標籤,或做你想做一個二進制「是/否」的一個字符串是否包含HTML標籤? – thatdamnqa

+0

是的,HTML「安全」,以便我可以輸出鏈接和所有。 – user1846348

回答

3

您可以使用htmlspecialchars()轉義任何html標記。

$string = htmlspecialchar($old_string); 

您可以從字符串中使用strip_tags()刪除所有的HTML標籤。

$string = strip_tags($old_string); 

但是,如果你想知道,如果有字符串中的HTML標籤,您可以使用此功能,與strip_tags() combinated。

function hasHTML($string) { 
    if ($string != strip_tags($string)) 
     return true; 
    else 
     return false; 
} 
+0

我已經使用strip_tags()。雅我會檢查是否字符串!= strip_tags($字符串) – user1846348

+0

如果我的帖子回答了這個問題,請標記我接受的答案。 – aksu