好多的网站都用到表单来提取访问者的信息,姓名,邮箱,网址,留言内容和发送的信息等!这类表单在保存后基本都要显示在屏幕上,他们也存在着非常严重的安全漏洞,成为一些人的攻击目标! --------------------------------------------------------------------------------
1 表单的漏洞 (1) 没有 HTML语法屏蔽 与留言原理一样,如果你的表单处理程序没有屏蔽掉HTML语法,他们就可以用类似 之类的代码来攻击你的表单程序,这类攻击的原理和防御的方法你可以参照<<留言系统的漏洞和对策>>.(2)单长度没有限制 某些表单域因为没有限制输入文字的长度,他就会成为垃圾的攻击目标.如果几兆或更多的垃圾放到你的表单里会怎样?死啦死啦的有!! (3)CGI程序里没有检验发送来的实际数据长度 有些表单定义了表单项的最长长度,但由于没有在 cgi 程序里判断真实的长度,造成那个表单限制名存实亡,行同虚设.比如: (a) 你可以不从表单里直接输入,而从其它地方剪切过来. (b) 你可以把它的表单程序代码另存为一个新文件,然后修改其中的限制代码!然后...你知道了!!! --------------------------------------------------------------------------------
2 防御方法 (1)屏蔽掉 HTML 语法. (2)你的表单域一定要定义最长字符数.方法是:在你的表单的属性里设置最长选项.html的语法为: maxlength="XX"; (3)你的gi程序里一定要判断真实的文字长度,其代码为: $FORM{'name'} = substr($FORM{'name'},0,16)."0" if( length($FORM{'name'})>16); 如果name长度大于16个,则去掉多余的部分. --------------------------------------------------------------------------------
|