提起安全性这个话题,大家恐怕依稀还记得Sony的PSP账户信息泄露的事故造成的重大损失。但是又隐隐觉得这事儿离我很远,无需过多考虑。也有的人会想,我们做的是企业内部系统所以不必太在意。但是,Web程序的安全性已经悄然来到你我身边,我们在使用的系统太多的并没有充分考虑安全性。这样的系统只是尚未发生事故。一旦发生事故后果相当严重。

轻者数据泄露,重者商业损失,更严重的导致商誉损失,甚至是企业倒闭。这绝不是危言耸听,且看看这些年来报道的安全门话题,哪个不是损失惨重?

今天就来说一说这个话题:企业应用的Web程序的安全性。

很多企业的应用程序喜欢使用Web来开发,一者开发相对简单,二者部署容易,三者升级方便。所以,Web往往成为企业应用开发的首选。但是由于是企业内部应用,只要不到互联网上就不会把安全当成一会事儿,而且,即使连到互联网上,开发的时候也不会过多考虑安全性。

功能永远在首位,其次是性能,安全~~花钱又多,又看不到效果,反正没出事儿...等等思维方式的影响下,安全话题就在企业开发中被一再搁置,成为一个极少被提及的话题。

然而,企业应用真的就可以忽略安全吗?真的就可以不必在意安全吗?

如果一套工资管理系统,查看工资的代码可以不需要权限就能够直接通过URL访问的话,工资数据就全部泄露了。

如果一套经销商管理系统,定期向经销商发送邮件的服务器并没有设置密码,那么任何人都可以通过这个服务器发送一些匿名邮件。

如果一套销售管理系统,生成订单的URL中没有验证码识别,那么一个机器人就可以生成无数的无效订单。

一套不安全的餐饮管理系统,在一个有WIFI的餐厅里,可能会被某个食客攻击。

一套不安全的生产管理系统(ERP),可能会被工厂里的一台手机控制。

现在的黑客技术越来越多,并不只是银行系统才需要安全机制,也不是加了数字证书Web应用就牢不可破了。

企业Web应用的安全问题不容忽视,也并不容易解决。

那么如何在开发的时候就能够很好地规避安全问题呢?(需求与报价阶段就应该和客户谈清楚,本文从略)

下面从几个能够被攻击的角度进行说明:

1. SQL注入

A. 采用preparedSQL的方式传递参数。

B. 避免社会学猜测,比如密码字段名不叫做password,pswd等容易被猜测的名称。

2. 垃圾数据

A. 后台对于所有的可输入项的数据进行校验,包括采用Radio和DropDown构建的组件。

3.防止URL滥用

A.明确标记GET和POST

4.防止批量删除数据

A. 采用权限校验

B.只提供每次删除一条数据的操作

5. CSRF攻击

A.在HTML代码中书写CSRF禁用代码

          <meta content="authenticity_token" name="csrf-param" />
          <meta content="<<略>>" name="csrf-token" />
 
6.WebService匿名访问
   A. WebService的每个访问都需要经过认证
   B. 每次认证需要有时效性
   C. 认证通过认证码进行
 
7.防止密码泄露
   A. 不在页面显示密码,不在隐含域,HTML注释,JavaScript中显示密码
   B. 不用明文传输密码
   C. 采用较强的密码策略
   D. 不用员工编号作为ID,或者姓名全拼、简拼的方式
   E. 每个人的初试密码不同,并采取暗文抄送的方式
   F. 不提供取回密码功能,只提供更改密码功能,通过有时效的URL进行处理
   G. 不会将密码发送到邮件中去
   H. 不要在Log中记录密码
 
8. 邮件服务器滥用
    A. 必须有用户名密码
    B. 只允许来自固定IP的访问
 
9. 数据库泄露
     A. 删除默认账户
     B. 修改数据库端口
     C. 数据库名称不容易被猜测
     D. 只允许来自固定IP的访问
 
10. 文件未经授权下载
     A. 下载文件的目录不能够通过URL直接访问
     B. 文件下载前必须经过权限认证
 

11. URL泄露

A. 没有权限操作的按钮不显示出来,并且相关的JavaScript也应该不出现

12. StackTrace泄露

A.不要为了维护方便而将Exception的StackTrace输出到页面上

企业应用的Web程序的安全性的更多相关文章

  1. Web应用程序的安全性问题依其存在的形势划分,种类繁多,这里不准备介绍所有的,只介绍常见的一些。

    Web应用程序的安全性问题依其存在的形势划分,种类繁多,这里不准备介绍所有的,只介绍常见的一些.  常见Web应用安全问题安全性问题的列表: 1.跨站脚本攻击(CSS or XSS, Cross Si ...

  2. 使用 Rational AppScan 保证 Web 应用的安全性,第 2 部分: 使用 Rational AppScan 应对 Web 应用攻击

    1 当前 Web 安全现状 互联网的发展历史也可以说是攻击与防护不断交织发展的过程.目前,全球因特网用户已达 13.5 亿,用户利用网络进行购物.银行转账支付和各种软件下载,企业用户更是依赖于互联网构 ...

  3. 使用 Rational AppScan 保证 Web 应用的安全性,第 1 部分: Web 安全与 Rational AppScan 入门

    前言 当今世界,Internet(因特网)已经成为一个非常重要的基础平台,很多企业都将应用架设在该平台上,为客户提供更为方便.快捷的服务支持.这些应用 在功能和性能上,都在不断的完善和提高,然而在非常 ...

  4. YbSoftwareFactory 代码生成插件【十三】:Web API 的安全性

    ASP.NET Web API 可非常方便地创建基于 HTTP 的 Services,这些服务可以非常方便地被几乎任何形式的平台和客户端(如浏览器.Windows客户端.Android设备.IOS等) ...

  5. (转)对《30个提高Web程序执行效率的好经验》的理解

    阅读了博客园发布的IT文章<30个提高Web程序执行效率的好经验>,这30条准则对我们web开发是非常有用的,不过大家可能对其中的一些准则是知其然而不知其所以然. 下面是我对这些准则的理解 ...

  6. Web程序员开发App系列 - 申请苹果开发者账号

    Web程序员开发App系列 Web程序员开发App系列 - 认识HBuilder Web程序员开发App系列 - 申请苹果开发者账号 Web程序员开发App系列 - 调试Android和iOS手机代码 ...

  7. 发布在IIS上的Web程序,调用服务器的COM组件

    场景大致是这样的,在工厂中分布着许多的PDA点,这些PDA点都要进行实时的扫描--打印操作.实现方法是采用网络打印机,然后服务器安装驱动,管理着所有的打印机.然后服务器,发布一个WebService, ...

  8. Web API 的安全性

    Web API 的安全性 ASP.NET Web API 可非常方便地创建基于 HTTP 的 Services,这些服务可以非常方便地被几乎任何形式的平台和客户端(如浏览器.Windows客户端.An ...

  9. (11)Web程序保存状态的几种方式,Application,Session,Cookie,ViewState

    WEb程序保存状态的方式有这样几种: 1.Application:保存在Application中的数据是全局有效的:Application里面存放的应该是访问多修      改较少并且是全局至少大部分 ...

随机推荐

  1. sqoop-1.4.6安装配置

    1. 下载sqoop-1.4.6并解压 wget http://archive.apache.org/dist/sqoop/1.4.6/sqoop-1.4.6.bin__hadoop-2.0.4-al ...

  2. android自学笔记(1):android简介

    Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发.尚未有统一中文名称,中国大陆地区较 多人使用“安卓 ...

  3. MVC5----用户登陆及验证码

    随便写写记录一下学习的过程 登陆 Models中添加添加 public class LoginViewModel { [Required(ErrorMessage = "*")] ...

  4. Linux文件系统结构

    准备写个Linux基础知识总结, 第一个想到的就是整理一个常用系统文件夹结构的说明,园子里“Aric小屋”的结构图整理的不错,我就不重复整理了,故借用一下

  5. Cocoa 框架为什么采用两阶段的方式来创建对象?

    对于之前一直使用C#语言的我来说,刚开始接触Objective-c来创建对象时很迷惑,为何创建对象一般情况下需要通过发送两个消息(调用两个方法)才能创建一个类实例对象(例如[[UIButton all ...

  6. wampserver安装后 mysql 所有数据库丢失的解决方案

    事情起源: 晚上十点客户紧急来电,说是网站全部瘫痪.同事登陆数据库一看,Mysql Workbench Database下一片空白.当时我们都傻了. 发现原因: 服务器环境是windows serve ...

  7. javascript笔记——js面试问题

    1:javascript中的变量提升(先使用再声明,js中的函数也存在函数提升) 2:js中的事件捕获和事件冒泡(是两个相反的过程) 3:js中的动画队列(比如animate动画没有在点击的时候阻止正 ...

  8. Android开发之如何保证Service不被杀掉(前台服务)

    序言 最近项目要实现这样一个效果:运行后,要有一个service始终保持在后台运行,不管用户作出什么操作,都要保证service不被kill.参考了现今各种定制版的系统和安全厂商牛虻软件,如何能保证自 ...

  9. SecureCRT for Linux突破30天使用限制

    当然还有一种方法,就是当你试用点i agree到时候,在~/.vandyke/Config 会生成一个文件SecureCRT_eval.lic,删除以后就可以恢复30天试用

  10. 利用input事件来监听移动端的输入

    今天遇到一个新需求,经理要求评论功能需要限制字数,就像微博那样限制最多输入150字,这里就需要实时提醒用户还能输入多少字了. 在最开始的时候,想到的是监听keyup事件,然后计算用户输入的字数,但是有 ...