`

web开发中的一些完全问题

阅读更多

最近朋友去面一个测试岗,有一道题目为:什么是web安全测试?这题目好泛啊!但细细一想,作为IT从业者,尤其是开发或测试,都必须了解这方面的知识;我听到这题目,第一反应就是想到WEB开发中,都有哪些方面与安全相关呢?咋一想,还想不出很多东西,于是决定进行一次总结;查了一些资料结合自己的经验如下:

 

1,服务器架构方面的安全问题

    服务器要做好相关的防火墙配置:如尽量限制对外端口越少越好,优化一些TCP/UDP等参数,规划和管理好用户权限系统(主要为目录和文件的读写执行权限等);

对于分布式部署的系统,如果仅是内部系统之间通讯的服务,只要通过内部IP进行相互访问即可,如果不在同一网段,也应该限制IP;所有不需要对外开放的端口,都应该被禁止;

 

  服务器常见的攻击方式有:DDOS攻击、远程用户获取目录或root权限

    DDOS攻击有很多种,主要表现为耗尽服务器网络或系统资源,达到网站服务瘫痪的目的;针对DDOS攻击,可优化配置,安装相关防范软件等预防;

 

    远程用户获取相关的权限,主要是通过扫描系统的漏洞达成的;针对这种需要做好系统的管理和及时更新补丁;

 

    还有一些从路由方面进行攻击的,这些我也只做了稍微了解,路由方面主要注意打好安全补丁,管理好登录密码即可;

 

2,统设计的安全问题

   一个不好的设计,也有可能引起安全方面的问题:

   比如设计API的时候,尽量做好认证方面的设计,针对设计金钱交易等方面的API,尽可能做好认证的同时,限制访问域名或IP

 

    有些系统涉及到上传下载,针对这种需求,最好限制上传或下载的目录以及文件类型;避免恶意用户上传含有攻击代码的文件,以及下载涉及系统安全方面的文件(如含有服务器数据库连接密码等配置文件)

 

    针对一些对用户可见的URL或其他数据,设计的时候,不应该透漏流程或步骤规则,否则恶意用户可能通过大量比较,摸出系统的一些规则,从而利用这些规则对系统发起攻击;

 

    系统的一些紧要的算法,不应该使用客户端脚本开发,客户端脚本对用户都是可见的,一旦被恶意用户发现,则有可能被利用;

 

3,程序开发的安全问题

   对用户的输入都需要做特殊的过滤处理,包括表单输入和URL输入,以免用户利用输入漏洞进行攻击(最常见的输入脚本攻击有SQL注入、XSS注入攻击)

对于XSS的过滤,会让人防不胜防;如果用常规的过滤HTML代码,可能还不行,有些聪明的攻击者会利用空白字符或添加多余的括号破坏过滤规则;那么可以自己定义一些规则来过滤,这里有一篇较好的参考文章:

http://cnodejs.org/topic/5058962f8ea56b5e7806b2a3

 

     一般的web用户登录认证都跟coockie脱不开关系,要注意防范攻击者利用伪造coockie来获取特殊用户信息,一般的认证系统都通过将sessionid保存在coockie中,每次用户访问,将cookie带回服务器,攻击者可以利用伪造coockie来获取模仿他人登录,从而窃取相关资料或其他目的;针对这种,可以附加一些认证规则,如结合IP或者分配动态加密token进行认证;简单的可以将coockie的有效时间设置的相对小一点,也可以缩小攻击范围;

 

    针对现今流行的电子商务,大多数WEB系统都是调用第三方支付来达成交易,那么交易时候的安全风险也移交给了第三方;但要注意的是,交易完成后,本地系统的逻辑处理也是要求安全级别很高的;关系到用户付款后得到的相关服务或实物问题;所以应该重视系统与第三方支付调用间的安全问题;比如调用微信支付后,微信会在前端返回一个状态,但同时微信会有后台异步通知本次支付是否成功;所以安全的策略就是,应该在后台接受到通知时做相关逻辑处理,这样后台的逻辑处理完全与用户脱离开来的,安全性就高很多了;

 

    其他安全问题还有很多,甚至包括人为的漏洞;比如最近的“光大证券乌龙指”事件等等;安全问题永远是个矛盾体,有攻击就有防御,有盾必有矛,一路较量,此消彼长,彼消此长,永远是个没完的话题;所以需要做好必要的防范,做好观察,做好监控,及时补丁和更新,防范于未然;

分享到:
评论

相关推荐

    Java Web开发完全掌握

    为了方便读者学习,书中实例所涉及的源代码都收录到《Java Web开发完全掌握》的配套光盘中,供读者在学习过程中使用。《Java Web开发完全掌握》适合web应用开发的入门用户、程序设计员和各行各业需要进行web开发的...

    Java Web 整合开发 完全自学手册 源代码

    Java Web 整合开发 完全自学手册 源代码

    java web 整合开发 完全自学手册 光盘资料-C02

    java web 整合开发 完全自学手册 光盘资料 源代码partI 1.本书2~24章所附代码的运行环境 操作系统:Windows 2003、Windows XP Professional,或者Windows 2000 开发环境:JAVA5、MyEclipse 数据库:MySQL Web...

    WEB开发完全手册

    可帮助你创建引人注目的 Web 页面,其中包括了众多WEB开发相关的对象、方法及相关技术和元素的详细描述,是一本开发WEB应用不可缺少的精品实用手册。 <br>动态 HTML (DHTML) 对象模型参考 <br>DHTML 对象 ...

    浅析MVC模式在WEB开发中的应用

    PHP作为一种简单易用的开发语言,它的第五版对Object Oriented思想加入了完全的支持,使用MVC模式,PHP就能完成复杂的Web应用的开发。是否采用MVC,如何使用MVC,一个最根本的原则是不要为了使用而使用。本文首先...

    Java Web整合开发完全自学手册:Struts+Hibernate+Spring+Eclipse源码

    《JavaWeb整合开发完全自学手册》介绍如何整合Struts+Hibernate+Spring+Eclipse进行J2EE开发,所有实例都基于MyEclipseIDE开发,引领读者快速进入基于JavaWeb的J2EE应用领域。《JavaWeb整合开发完全自学手册》主要...

    java web 整合开发 完全自学手册 光盘资料 源代码partII

    java web 整合开发 完全自学手册 光盘资料 源代码partII 会继续上传技术文档

    PHP和MySQLweb开发第5版(英文高清PDF和31章源码)

    语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的...

    Web服务的开发过程框架及其实例研究

    服务应该遵循的设计原则,以这样方式开发的Web 服务没有完全发挥SOA 的优势,不易管理 10 与复用。本文在介绍Web 服务相关的概念与技术的基础上,提出一个Web服务开发过程框架。 以通用ATM 系统的开发为例,讨论了...

    web前端开发完全技术宝典

    包含ajax参考手册、CSS参考手册、HTML参考手册、javascript参考手册、jQuery参考手册。

    Visual Web Developer(可视化Web开发工具)(rar)

    可视化Web开发工具由Visual Web Developer开发环境, WebFramework运行环境 2大部分组成, Visual Web Developer是基于Windows的一个开发工具,提供了一系列控件, 让您的模块实现只需要通过拖沓控件,指定控件的...

    海康威视web视频开发(32-64).rar

    海康威视web视频开发包,包含开发所需要的视频插件及js文件,支持32位及64位操作系统,demo中包含详细的视频及云台操作。 需要注意的问题是: ...3. 并且WEB开发包有32位浏览器和64位浏览器之分,不能互相兼容。

    经典web开发必备参考资料

    这是web开发的常用参考资料,内容有: 【ADO210】【css滤镜】【css样式】 【DHTML默认行为手册】【DHTML完全手册】 【DOM文档对象模型手册】【gecko_dom】【Jquery1.2.6源码分析】【JScript5.5】 【MySQL中文参考...

    Web 3.0控件开发包编程指南+Demo实例+海康威视web开发

    Web 3.0控件开发包编程指南+Demo实例+海康威视web开发 Web3.0 有哪些应用? -------------------------------------------------------------------------------- 1、去中心化自治组织(DAO) DAO是在线成员共有的...

    Java.Web开发学习手册

    Java.Web开发学习手册,Java web入门书籍,可以自己学习一下。

    Java Web开发学习手册光盘源码

    Java Web开发学习手册随书光盘源码

    WebMatrix-微软最新的Web开发工具

    WebMatrix 是微软最新的 Web 开发工具,它包含了构建网站所需要的一切元素。您可以从开源 Web 项目或者内置的 Web 模板开始,也可以直接从无到有编写代码。简单并且完全是免费的。开发网站从来没有如此简单。 观看...

    《Java Web整合开发完全自学手册》 源代码

    此资源为《Java Web整合开发完全自觉手册》 源代码

    webapi 插件式开发

    一个项目随着业务模块的不断增加,系统会越来越庞大。...面对这样的情况,首先想到的是模块化插件式开发,根据业务模块,拆分成各个独立的插件,然后分配不同开发人员开发,互相之间没有依赖完全独立。

    Java Web开发完全掌握.夏帮贵

    Java Web开发完全掌握.夏帮贵 Java Web开发完全掌握.夏帮贵

Global site tag (gtag.js) - Google Analytics