跨站脚本攻击就是指恶意攻击者向网页中插入一段恶意代码,当用户浏览该网页时,嵌入到网页中的恶意代码就会被执行。一般用来盗取浏览器cookie

跨站脚本攻击漏洞,英文名称Cross Site Scripting,简称CSS又叫XSS。它指的是恶意攻击者向Web页面中插入一段恶意代码,当用户浏览该页面时,嵌入到Web页面中的恶意代码就会被执行,从而达到恶意攻击者的特殊目的。

避免XSS的方法之一主要是将用户所提供的内容输入输出进行过滤,许多语言都有提供对HTML的过滤。

跨站脚本攻击漏洞解决方案

可以利用下面这些函数对出现xss漏洞的参数进行过滤:

PHP的htmlentities()或是htmlspecialchars()。
Python的cgi.escape()。
ASP的Server.HTMLEncode()。
ASP.NET的Server.HtmlEncode()或功能更强的Microsoft Anti-Cross Site Scripting Library
Java的xssprotect(Open Source Library)。
Node.js的node-validator。

PHP跨站脚本攻击漏洞修复方法

利用PHP的htmlentities或htmlspecialchars函数进行过滤。
例如:

<?php
$test = abc; 
echo htmlspecialchars($test);
?>

htmlentities与htmlspecialchars有什么区别?

这两个函数的功能都是转换字符为HTML字符编码,特别是url和代码字符串,防止字符标记被浏览器执行。
htmlentities转换所有的html标记,而htmlspecialchars只转换&、”、’、<、>这5个标记。

转换英文时二者不会出现问题,当转换中文时htmlentities()就会出现乱码。
如果用htmlentities函数转换包含中文的字符,需要指定字符编码。
语法:

htmlentities($str,ENT_COMPAT,"GB2312")

标签: php, 函数, htmlspecialchars, htmlentities, 漏洞

添加新评论