我怀疑是一些引用的别的网站的脚本的问题。象一些计数器网站是很容易被攻击的。因为攻击了这类网站,就可以大量钓鱼。通过在这些计数器脚本放置恶意代码,可以控制浏览者的机器。比如象上次那个暴风影音溢出类似的。
网站本身的漏洞,一类是sql注入。这类错误,是愚蠢的不合格的程序员写出来的代码导致的。如果所有的查询都用参数化查询就不可能产生这种问题。所谓的安全专家的防注入之类的,都是骗钱伎俩而已。php不知道有没有code style之类的工具能检查出sql注入类型的漏洞。
第二类问题是网站权限设置问题。比如一个目录可以上传文件,而这个目录因为管理员的疏忽,可以执行,于是人家传个php文件上去执行了。把上传文件的目录设置为不可执行就没事了。
第三类是系统本身的问题。比如,windows系统漏洞,php组件本身的漏洞。这类问题,一般及时打补丁,应该是可以避免的。毕竟能发现这类漏洞的人不多,而且这类漏洞是值钱的,人家不会随便乱用,用于军事用途或者卖钱多好,放一个小网站上,还大肆张扬,要是暴露了这个漏洞就不划算了。
还有一类,是所谓的旁注。一个机器上有多个虚拟主机,其中一个有问题,导致服务器被控制,其他的网站跟着倒霉。虚拟主机是没有办法保证安全性的。因为很多因素不由网站的管理员控制。
discuz以前是有过sql注入漏洞的。我没看过discuz的代码,不知道它现在还有没有。