PHP防范XSS攻击

定义

XSS(Cross Site Scripting)攻击,中文名为跨站脚本攻击,是一种常见的网页攻击方式。

攻击者在web页面中插入一些恶意的javascriptHTML代码,当用户浏览该页面的时候,嵌入到web页面中的javascript/HTML代码会被执行,从而达到攻击目的。

一个简单的例子就是网页中的评论功能,用户编写一段javascript代码(见下面)提交到服务器,如果不做过滤就直接显示出来的话,就会导致用户一打开页面就会有弹窗提示“你被攻击了”。

<script>window.alert("你被攻击了")</script>

防范手段

对用户数据进行过滤

这种攻击方式再次印证了“永远不要相信用户提交过来的数据”的真理,所以要防范这种攻击,就要对数据进行过滤,在用户提交时过滤,或者在输出页面时过滤都可以。

在PHP中可以使用htmlspecialchars或htmlentities函数,这两个函数都可以把特殊字符转换为HTML实体,区别在于,前者只会转换一部分字符,后者会转换全部特殊字符。

cookie设置为http only

较多XSS攻击注入的javascript脚本代码都是为了获取用户的cookie信息,把cookie设置为http only,可以禁止javascript读取。因此这种方法一定程度上也能防范XSS攻击。

具体在PHP中是将setcookie函数的httponly参数设置为true

你可能感兴趣的:(PHP,XSS攻击)