使用HTML转义编写代码以避免跨站点脚本攻击


Writing code using HTML-escaping to avoid cross site scripting attack

我是PHP新手。这是库代码的一部分。我最近读到关于SQL注入和跨站点脚本攻击的文章,我正试图通过对动态生成的数据进行html转义来避免这种攻击。我不确定我在这里的方向是否正确。我创建了一个带有URL参数的数组,然后是一个用于HTML转义的函数。你能批评一下这个代码,让我知道我做错了什么吗?

$parameters_new = array('name' => $name,'pcaption' => $caption_array[$new]);
function html_escape($input, $encoding)
{
    return htmlentities($input, ENT_QUOTES, $encoding);
}
$result_final .= '<div class="limage"><table><tr><td><table class="image"><tr><td><a href="' . html_escape('gallery.php?' . http_build_query($parameters_new), 'UTF-8') . '">
<img src="'. $img_dir . '/' .$photo_filename.'"  alt=" ' . $photo_keywords . '"></a>
<div class="caption">'.$photo_caption.'</div><div class="excerpt">'.$photo_description.'</div></td></tr></table></td></tr></table><div class="underline"></div>;

我建议您使用模板系统或创建自己的模板系统。

模板系统,如Smarty,可以捕捉你的vars

您可以看到这个问题:为什么我要在PHP中使用模板系统?