如何检查字符串是否包含任何标签<>。我需要从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?
请在这里帮助我。感谢。
答案 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;
}