进过我的观察,发明人人孝敬许多的模板中都没有对URL中的参数举行必要的过滤,从而给黑客留下跨站进击的空子。
在这里我举一个典范的例子供人人参考,下面是某个CMS模板输出搜刮关键词的代码,
?php }elseif($params[1]=='keyword'){ ?>
关键词 <b><?php echo urldecode($params[2]);?></b> 的搜刮效果
请 注重$params[2]变量没有任何过滤的就直接输出了,而我们能够组织/index.php?keyword=8<img src=1 width=500 height=500 onerror=alert(1)>在页面上运转javascript代码alert(1). 黑客在进击时能够把alert(1)替换为进击代码(比方猎取访问者的cookie信息)后发给站长。假如站长不小心点了链接,那末黑客就可以猎取站长上岸 状况的cookie,有了cookie,就可以假装站长上岸站点背景做他想做的任何事情了。
综上所述,为了列位用户的平安着想,请列位模板作者在输出URL参数时运用PHP的htmlspecialchars函数来举行过滤,防备XSS进击,像上面例子中的代码能够修改成
?php }elseif($params[1]=='keyword'){ ?>关键词 <b><?php echo htmlspecialchars(urldecode($params[2]));?></b> 的搜刮效果
末了照样要谢谢列位模板的作者为 emlog的忘我支付,愿望这篇教程能给人人做出平安好用的模板供应肯定的协助。

评论列表