提起安全性这个话题,大家恐怕依稀还记得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. 解决python 提示 SyntaxError: Missing parentheses in call to 'print'

    刚刚学习python,练习他的输出,发现输出一个常量时报错了,如下: 发现是因为python2.X版本与python3.X版本输出方式不同造成的在python3.X的,输入内容时都要带上括号pytho ...

  2. 上传系列:jquery.upload.js

    最近想做一个上传的总结,把自己用过的上传插件都写一写,哪天用到的时候就不用再一次的翻阅资料,现在页面上用到的上传插件,原理上都差不多,那我也就不再废话了,下面我主要记录一下几个比较常用的,由简到繁,这 ...

  3. php学习-快速开发框架thinkphp-day1

    以下操作针对windows系统. 1.下载thinkphp3.23-all并解压 官方网站: http://www.thinkphp.cn/down.html 2.开发工具使用phpstorm htt ...

  4. js和jQuery创建元素和把元素插入到文档中所用的方法

    js创建元素: document.createElement(" 创建的元素");   //“创建的元素”指:p ,h1,div,span........ js插入元素: docu ...

  5. 【分享】.Net有哪些大型项目、大型网站的案例?

    .Net开发的部分知名网站案例:http://www.godaddy.com  全球最大域名注册商http://www.ips.com  环迅支付,国内最早的在线支付平台http://www.icbc ...

  6. java新手笔记33 多线程、客户端、服务器

    1.Mouse package com.yfs.javase; public class Mouse { private int index = 1; private boolean isLive = ...

  7. javascript笔记——密码组合规则

    //6-16个字符,字母加数字或符号的组合密码[必须全部包含] var filter = /^(?=.*[0-9])(?=.*[a-z])(?=.*[!@#$%^&*])(?=.*[A-Z]) ...

  8. Linux ---> 简单socket

    #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <string.h> ...

  9. CMakeLists实战解读--YouCompleteMe

    原文转载自:Ricky.K http://www.cnblogs.com/rickyk/p/3877238.html 个人一直有一个想法,就是想出一系列关于CMakeLists.txt国外经典例子的实 ...

  10. poj 1659 Frogs' Neighborhood Havel-Hakimi定理 可简单图定理

    作者:jostree 转载请注明出处 http://www.cnblogs.com/jostree/p/4098136.html 给定一个非负整数序列$D=\{d_1,d_2,...d_n\}$,若存 ...