PHP项目编码中如何防护XSS漏洞?

Web 2.0 的发展为网络用户的互动提供了更多机会。用户通过在论坛发表评论,或是在博客发表留言都可能有意或无意输入一些破坏性的内容,从而造成网页不能正常显示,影响其它用户的使用。

XSS 全称为 Cross Site Scripting,因为 CSS 已经用作样式表的简称,故称为 XSS。 XSS 是一种常见的网站攻击的方法。其原理是通过在网页的输入框输入一些恶意的内容(伊凡门户),通常是 JavaScript 脚本片段,而这些恶意输入在提交之后并重新读回到客户端时,浏览器会解释执行这些恶意的脚本内容,从而影响网页的正常显示。

那么PHP项目的编码中如何防护XSS漏洞呢?是否有统一的处理方案呢?

Github给出了我们答案:https://github.com/phith0n/XssHtml

当然,我们也有一些误区提示:

1.XSS有很多的变种,并不是我们常以为弹个窗啥子来的;

2.存储型XSS不等同于SQL注入,SQL是发生在数据流的过程中,即请求时攻击。而XSS是展现型攻击,你可以很大方地把XSS存入到你的数据库或(伊凡门户)任何一个地方(前提是XSS代码里的语句或字符不会影响你程序的正常进行),但是在读取后在客户端上显示时一旦未处理就会暴发XSS了;

3.XSS可以辅助实施APT攻击,可以潜伏在你的程序里而让你不知觉,可以让你沦为肉鸡进行DDOS攻击。

相关推荐:
i (PCRE_CASELESS) 如果设定此修正符,模式中的字符将同时匹配大小写字母。 m(PCRE_MULTILINE) 默认情况下,PCRE 将目标字符串作为单一的一“行”字符所组成的(甚至其中包含有换行符也是如此)。“行起始” …
首先我们来简单地普及下GUID, 即Globally Unique Identifier(全球唯一标识符) 也称作 UUID(Universally Unique IDentifier) 。 GUID是一个通过特定算法产生的二进制长度为128位的数字标识符,用于指示产 …
在设计登录的模式时,会考虑到让SESSION能够独立于浏览器的行为,那也就是说不会因为关闭了浏览器导致会话失效,这个时候肯定优先使用数据库来存储SESSION相关的内容。 php的session是可以程序恢复的,这个 …
其实就是换行符的系统默认常量。 unix系列用 \n windows系列用 \r\n mac用 \r PHP中可以用PHP_EOL来替代,以提高代码的源代码级可移植性。 如: <?php echo PHP_EOL; //windows平台相当于 echo "\r\n"; …
拿起手机扫一扫即可带走我!