<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="总结php防注入和XSS攻击通用过滤（带示例代码）" id="card1">
<p> 游客</p><p>
标题:总结php防注入和XSS攻击通用过滤（带示例代码）<br/>
正文:<br/>
对网站发动XSS攻击的方式有很多种，仅仅使用php的一些内置过滤函数是对付不了的，即使你将filter_var,mysql_real_escape_string,htmlentities,htmlspecialchars,strip_tags这些函数都使用上了也不一定能保证绝对的安全。那么如何预防 XSS 注入？主要还是需要在用户数据过滤方面得考虑周全，在这里不完全总结下几个 Tips1. 假定所有的用户输入数据都是&amp;ldquo;邪恶&amp;rdquo;的 2. 弱类型的脚本语言必须保证类型和期望的一致 3. 考虑周全的正则表达式 4. strip_tags、htmlspecialchars 这类函数很好用 5. 外部的 Javascript 不一定就是可靠的 6. 引号过滤必须要重点注意 7. 除去不必要的 HTML 注释 8. Exploer 求你放过我吧&amp;hellip;&amp;hellip;方法一，利用php htmlentities函数例子php防止XSS跨站脚本攻击的方法:是针对非法的HTML代码包括单双引号等，使用htmlspecialchars()函数 。在使用htmlspecialchars()函数的时候注意第二个参数, 直接用htmlspecialchars($string) 的话,第二个参数默认是ENT_COMPAT,函数默认只是转化双引号(&amp;ldquo;), 不对单引号(&amp;lsquo;)做转义.所以,htmlspecialchars函数更多的时候要加上第二个参数, 应该这样用: htmlspecialchars($string,ENT_QUOTES).当然,如果需要不转化如何的引号,用htmlspecialchars($string,ENT_NOQUOTES).另外, 尽量少用htmlentities, 在全部英文的时候htmlentities和htmlspecialchars没有区别,都可以达到目的.但是,中文情况下, htmlentities却会转化所有的html代码，连同里面的它无法识别的中文字符也给转化了。htmlentities和htmlspecialchars这两个函数对 '之类的字符串支持不好,都不能转化, 所以用htmlentities和htmlspecialchars转化的字符串只能防止XSS攻击,不能防止SQL注入攻击.所有有打印的语句<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=2186&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=2186&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=2186&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=2186&amp;Page=3">[3]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=2186&amp;Page=5">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=2186">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=2186">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>