第六个,SQL的权限。我也是程序员出身,比如说我在开发程序的时候,我肯定愿意数据库的权限用的连接词的权限越大越好,这样我只需要调整源代码,不需要调用权限,你要把你让他干什么活儿给他这个权限,不能给他更高的权限。
最后定期检查网站的安全漏洞,对你的网站进行一个修复。
第二类——跨站脚本。也是一种注入,只不过注入的语句从客户端发出到服务器,然后服务器没进行过滤,又把它的提交过来的参数又返回给客户端,客户端本身注入这些是什么呢?是JAVA的标准语言或者是标记,这样就产生是标记语言,而不是数据语言,这就是跨站。跨站曾经在OWASP2010是排在第一位的。
跨站我们应该怎么防护呢?首先跟注入是一样的,不要相信用户的输入,然后把用户的输入全部过滤掉。尽量在HTML代码中不要插入不可信的一些内容。对于需要插入的内容首先在进来的时候要检查,在输出的时候从服务器返回客户端的时候,要对它进行一个HTML编码,然后给他以后,他到客户端以后,就成了一个数据,就不会是标记。
表单绕过,说白了实际上是一种特殊形式的SQL注入。就是说原本这个地方是登陆的一个表单,输入用户名和密码,而且要输入正确的用户名和密码才能登陆进去。但是由于这个地方存在着漏洞,作为攻击者他就可以绕过这个限制,比如说我们看这边有一个模型。这种方式在过去一两年很多黑客愿意用这个。
针对表单绕过的防护措施,实际上跟前面所说的SQL注入的防护措施是类似的。这样用防护措施基本防护住了表单绕过。接下来是后台管理。后台管理本身这个后台很多情况下是对CMS的系统来讲,作为管理员登陆这个后台,发布一些新闻,这个时候这个后台管理如果说被攻击分子找到的话,他可能通过外来密码,或者说通过社会工程学登陆这个管理后台。这个管理后台还有一种就是危险比较大的,比如说我们这个地方是一个TOMCAT的一个管理后台,这个时候会让你输入用户名和密码,很多以前的只有时候TOMCAT就默认了,进了这个TOMCAT也有这个管理后台,这个时候可以把整个原本发布的程序可以自己发布新的应用。这个相当于是中间件的管理后台。
对于应用程序的管理后台,比如说我这个地方有一个JEECMS,一般一个管理后台如果说他可以直接进去,这些他里面会有一些资源,或者是模板,特就可以直接上传Wed SCL,就可以控制这个服务器。
对于后台的管理,你肯定要做印证,就是权限的策略的一个印证,再有就是把你管理后台不要放在公网上,就不要放在公网上,因为新闻的发布都是在内网里面做到的。这些管理后台不要总是用一些让人一下子能猜到的,你可以起一个比较复杂的名字,也不要上面有连接,让他不容易找到,虽然他也可能用一些字典,或者通过谷歌(微博)去查,但是总归这样你能加大他攻击的难度。
敏感信息泄露的防范
敏感信息泄露,大大小小的网站这种情况都有。因为敏感信息泄露本身就是很广泛的范畴,这里面严重一点的比如说你把他参数没有按照他预先的定义输出了,他程序报错了,前台上面会显出程序报错了,有的时候数据库报错了ORA多少等等,这些都属于信息泄露。对于这种信息泄露,我们首先就是说一个要把这些错误信息统一定位到错误页面里去,直接告诉他你出错了,不要告诉他详细的信息,比如说你原来第八个调试信息,在你的产品上线了以后,你第八个信息就要关掉,不要再打开,不要让所有天下人都做你的TESTER。
再就是编辑器上传,这种编辑器本身就集成了好多功能,而且有的时候开发起来时间比较快,也比较容易上手。对于编辑器上传一个就是说尽量你要用最新的一些版本,然后对于一些不能给上传首先要验证他的后缀,实际上现在验证后缀也容易被绕过。这一块最好验证他整个的流程。
然后就是弱口令,就是弱密码,这一块我就不说了,刚才前面一位嘉宾已经说了,实际上弱密码大家已经看到了,都很傻,想象不出来,干吗用六个1,六个8,123,123,这一块没什么好说的,因为对于你程序员来讲,你怎么弄,你只能对他的密码进行强制性验证,你判断他这个密码里面没有符合你的密码策略,就不允许他使用。
接下来讲一下安全的一个防护。这一块本身今天并不是一个针对于所有程序员Web安全的一个培训,所以我讲的比较粗一点,比较反的Web应用安全防护。
Web应用安全防护有三个方面,就是事前、事中、事后。对于Web应用防护来讲,事前你的程序还没有发布的,在准备之前,在测试阶段就进行安全测试,无论你是通过专业的源代码检查工具也好,还是通过人工的也好,这样发现它一些安全上面的一些弱点、漏洞,这样就使你的程序本身就是按照性比较高的一个程序在发布出去。这个时候对于使用单位来讲,肯定他的后面维护所造成的一些成本就要低了很多,但目前据我所知,就是整个外面真正做到这一点的,少之又少。包括现在有一些银行在努力想做到这一点,但是也并不是所有的银行都做到了这一点。更多的都是,因为中国有的时候领导一开始没有安全漏洞,没有什么,他都不重视,非要等到黑客攻击他一下,他感觉到威胁了,说要赶紧做安全,但是实际上应用已经在线上使用了,这个时候有会去修补。今天修了那个洞,明天就有那个洞,那个洞修完了还有无穷的洞,这就是事前。事前还包括我们程序员自己把这个代码编写的更安全,我也做过开发,我也知道上过很多单位一进门就是小黑板,小黑板就是3月1号什么项目必须上线,3月15号什么东西,程序员压力都很大,我怎么样想把这个老板交给我的时间之内功能能满足就不错了,我什么时候考虑安全啊?但是为了对自己的产品负责的话,还是在可能的情况下,更多的去考虑安全。实际上有的时候往往就是一个举手之劳的东西。
比如说像OWASP有一个ESAIP函数,这个就是一个JAVA的包,你在写每一个程序代码的时候,只需要声明引用上去就很简单,也不会花你很多时间,这是事前。
事中就是这个应用已经上线了,上线了以后已经在线上正常运营了,在整个正常运营过程中,首先你要有安全的一个运维的一些制度,你的整个流程,然后你的访问控制,然后你的整个应用程序这一块你要经常性去自己做一些检测,日常的常规检测,甚至可以请专业的安全公司给你做安全测试、渗透测试,这一块你要努力把安全的风险每一天都在减少。因为安全永远是一个动态的,并不是一个静态的。就像去年曾经有一个SQL 2的安全出现了问题,作为一个正常的单位必须要经常做一个正常的检查,就像给自己做一个体检一样,这样只有自己的毛病在什么地方,针对性吃一些药。
推荐阅读
以后西乡人体验或者购买ThL手机再也不用跑去华强北那么远了!2月中,ThL西乡体验店正式落户在西乡街道富成路,届时深圳市民又多了一个购机地点选择。据了解,西乡拥有非常好的手机消费氛围,ThL希望借助西乡布局深圳>>>详细阅读
本文标题:安恒刘志乐:“泄密门”带给我们的警示
地址:http://www.lgo100.com/a/kandian/20120305/36966.html

网友点评
精彩导读
科技快报
品牌展示