emlog模板 【站长聚集地首发】防止跨站漏洞教程(所有模板 【站长聚集地首发】作者请务必阅读)

emlog教程 3年前 (2018) Mgo
0

进过我的调查,发现大家贡献很多的模板 【站长聚集地首发】中都没有对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的无私付出,希望这篇教程能给大家做出安全好用的模板 【站长聚集地首发】提供一定的帮助。



暂无评论

暂无评论...