我想解析RSS Feed并在我的网站上显示内容(php,html)。
但是我想对源代码进行html编码以防止xss攻击。但是我该怎么做呢?
1。)我怎样才能对网址进行html编码,以便以后可以使用?如果我使用htmlspecialchars作为entiere url,则url将不再起作用。
2。)RSS Feed的标题已经是html编码的。但是我想自己再做一次,以确保里面不能有xss内容。但我怎么能html编码已经编码的HTML?如果我使用htmlspecialchars两次,html输出将显示转义命令而不是正确的符号。
答案 0 :(得分:0)
只需给你一个可以删除xss的函数。 (不适用于所有情况)
function RemoveXSS(&$string, $low = false)
{
if (!is_array($string)) {
$string = trim($string);
$string = strip_tags($string);
$string = htmlspecialchars($string);
if ($low) {
return true;
}
$string = str_replace(['"', "\\", "'", "/", "..", "../", "./", "//"], '', $string);
$no = '/%0[0-8bcef]/';
$string = preg_replace($no, '', $string);
$no = '/%1[0-9a-f]/';
$string = preg_replace($no, '', $string);
$no = '/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]+/S';
$string = preg_replace($no, '', $string);
return true;
}
$keys = array_keys($string);
foreach ($keys as $key) {
RemoveXSS($string [$key]);
}
}