在php和javascript中清理字符串

时间:2014-01-25 18:46:46

标签: javascript php string xss

如何检查字符串是否包含任何标签<>。我需要从xss攻击或类似的攻击中清除我的字符串。 我正在寻找一个可以在javascript和php中对我的字符串进行处理的函数。

这就是我对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?

请在这里帮助我。感谢。

1 个答案:

答案 0 :(得分:3)

您可以使用htmlspecialchars()转义任何html标记。

$string = htmlspecialchar($old_string);

您可以使用strip_tags()从字符串中删除所有html标记。

$string = strip_tags($old_string);

但是如果你想知道字符串中是否有html标签,你可以使用这个功能,与strip_tags()结合使用。

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