网站首页/网络技术列表/内容

如何确保应用系统的安全

网络技术2024-01-05阅读
网络技术是从1990年代中期发展起来的新技术,它把互联网上分散的资源融为有机整体,实现资源的全面共享和有机协作,使人们能够透明地使用资源的整体能力并按需获取信息。资源包括高性能计算机、存储资源、数据资源、信息资源、知识资源、专家资源、大型数据库、网络、传感器等。 当前的互联网只限于信息共享,网络则被认为是互联网发展的第三阶段。

    说到安全问题,这是一个综合性的问题。并不是说有一段优秀的程序就能确保应用系统绝对安全,也并不是说系统管理员的工作认真负责了,系统就完全安全了。

    一般来说系统管理员的工作对系统安全的责任最大。如果系统安全没有做好,导致系统被入侵,那么即使程序中作再多的防范也仍然难逃被破解、篆改的厄运。其实现在很多漏洞,只要系统管理员勤打补丁、严格制定安全策略,合理设置文件系统、数据库系统、Web系统的各项权限和配置,既保证程序能够正常运行,有不给多于的权限不让入侵者制造机会,那么应用系统被侵入的可能就大大降低。


    但是,安全也不能光靠系统管理员。一段不负责任的代码,可能导致原本非常安全的系统功亏一篑。比如说,系统管理员对系统作了非常严格的管理,但是程序员却不对用户的输入作任何过滤导致了SQL Injection入侵的发生,或者在关键的地方不防止站外提交,那么应用系统还是会被无情地侵入。

    那么,如何做到安全呢?

    我向来的看法是:安全需要系统管理员和程序员共同维护。

    一个合格的系统管理员自然有一整套的安全方案去令系统稳定、安全、高效。有的时候一些程序员的低级错误可能导致安全问题,但是系统管理员也能够预先防范这种失误的可能。

    比如说,虽然程序员不慎没有限制上传附件的扩展名导致了用户上传可执行文件到指定目录,但是假如系统管理员对上传文件加做了严格的权限限制,禁止此文件夹中文件的执行权限,那么这一次,应用系统就化险为夷了。

    再比如说,SQL Injection入侵可能会导致重大的入侵后果,但是假如系统管理员删除了危险的且不必要的存储过程,对用户可能用到的数据库登录用户做了严格的权限限制,那么SQL Injection的危害就能降到最低。

    但是程序员必须对内容安全负责,从程序的角度保证用户的输入对应用系统来说是安全的,不要忘记在有权限限制的地方疏漏,禁止站外提交,不使用不安全的组件(防止被溢出)……这方面需要注意的地方我就不在这里一一细说了,哪天我们可以专门写一篇文章来讲程序代码如何维护系统安全。


    一个安全的应用系统是系统管理员和程序员共同努力的结果,系统管理员要从系统管理的角度做好安全维护工作,程序员从程序的角度维护系统安全,这样才有可能令应用系统最大程度地安全。

    并不是说由于你选择Win2000 Advanced Server作为你的服务器操作系统,没有选择Linux、FreeBSD,那么你的系统就不安全了。也不能说由于你使用ASP来开发你的应用系统,而没有选择PHP、JSP来开发,你的应用系统就不安全了。同样地,也别以为那些采用Unix操作系统,用JSP、PHP、.NET开发的系统就一定比你的系统安全,他们的程序员或者系统管理员如果不负责任,他们的系统照样会有机可乘甚至不堪一击。而且

    再说点题外话,也不要以为.NET、JSP的程序就一定比ASP的程序高效。一个初学Web开发的程序员写的.NET程序,不见得比一个优秀的ASP程序员写的程序执行效率高。


网络的神奇作用吸引着越来越多的用户加入其中,正因如此,网络的承受能力也面临着越来越严峻的考验―从硬件上、软件上、所用标准上......,各项技术都需要适时应势,对应发展,这正是网络迅速走向进步的催化剂。

相关阅读