网站被注入对网站的运营来说是很伤的,对于SEO来说也是很致命的,今天给大家分享网站防注入的常用手段。, v1 r: H. x! R" T
大家好,我是微笑话网的站长-三卷天书,一个地地道道的程序员,现在呆一公司给他们负责网站维护,公司的网站是十年前搭建起来的,拿别人弄的模板源码直接套用,看到这么一个网站,我也是醉了,十年前的源码,通篇不带一个注释,而且还把一些功能源码给封装起来,数据库里面70%的表是没有用到的,而且网站频频被注入,我接手后进服务器一看,傻眼了,服务器什么防护措施都没有,就一个可有可无的网络防火墙。这不是摆明了给heike他们机会吗?于是接下来的日子就是搞服务器安全,每天查看是否被注入,备份,然后还原,水深火热啊,废话不多说,接下来回归正题:" \" T: V7 K6 `/ X% g5 U$ n
网站常见的注入形式:uhぃ』bnajj%$&!&#¥¥##@……
4 \% F! \* l/ ~3 hURL注入:5 v& o2 A3 C- T5 F
* K) B/ W9 A6 M, {5 S: v* e* v最近查看了微笑话网生成的网站地图,发现了很多想利用网址参数进行注入的,几乎是每时每刻都有,上图给大家看看:# k5 T: B: M0 ]" Z3 V; d( f! b- F+ L2 U8 j8 J
' y9 T) _4 ~! F3 J- V$ `! _3 e) Y* h, i* X
( z5 \+ h% v. Z3 \8 p
域名后面的一串类似于乱码的字符就是heike的常用注入方式,也就是利用网站地址注入。hぃ』bnajj%$&!&#¥¥, B$ ^" y0 c4 O7 U! o$ X9 B; F) P& y
& ]9 w* j2 s) j+ H+ ^% g$ x
利用输入框注入:hぃ』bnajj%$&!&#¥¥: o% v- D$ M/ M3 v/ h* }! o7 ~
这种注入方式多数出于网站的搜索、注册、登陆等功能,因为这个功能的输入是字符串类型,也就是说你在搜索框输入任何字符,都是进行跟数据库匹配查询,然后返回结果。就比如微笑话网的搜索页,也有一堆人要注入:hぃ』bnajj%$&!&#¥¥: m$ @# ~1 j/ X# s, ?1 Z( R( T
- b; q0 ?2 X$ Z7 T8 |! h( F- Q' F& G0 O2 l
IIS注入:这个我了解不深,就不加以解释,免得误导大家可不好。ぃ』bnajj%$&!&#¥¥
6 \0 M+ b8 P. N( Q2 l U/ h k. o防护措施:ぃ』bnajj%$&!&#¥¥& b0 t% M8 P+ r. a! Y. m, y0 C! Z7 c2 F
其实上面所说的注入其根本原因就是因为参数过滤不严谨导致的,微笑话网所用的方法为:ぃ』bnajj%$&!&#¥¥+ q0 j& A& s! |3 I% y* g( Q. H w
一些ID之类的参数要进行验证是否为整形,也就是所谓的123这些自然数,把接收到的参数强转为整形,转换不成功则抓取异常,跳转到设定的错误页面或者其他操作。ぃ』bnajj%$&!&#¥¥( i- j% N2 n" w* l# Q" w+ ~
字符串参数的过滤:
" F' B2 {+ _3 b+ B9 A1 R过滤掉SQL语句的关键字符,控制参数字符长度,注入一般都是要形成一句sql语句,都是比较长的句子,如果你把传递的参数只截取前面的30个字符,基本上大多数的注入都会被你拒之门外的,微笑话网就是以此手段进行过滤,大家可以拿来参考参考。; ~) l: B: y, Y: N4 f- `
; b4 {& r6 \# s( e$ K9 A |