从事java web开发也有几年了,可是开发中的安全问题却越来越不以为然。直到不久遇到一黑软,瞬间sql注入,少时攻破网站数据库。还好,我还没有用root级的用户连接数据库。不过也没有什么用了,因为我的懈怠用户表的帐号密码没有加密。对方可以很容易的进入网站后台为所欲为了。更让我郁闷的是文件上传我没做类型限制,唉,不用说了上传一个webshell文件。可怜的服务器成了赤裸羔羊。回过头来痛定思痛,决定重新规范web开发的安全标准,总结如下。

1.绝对绝对绝对要采用预处理的方式来进行sql操作,如果实在需要做sql语句的拼接,那么请做输入信息的过滤。selet,update,delete,insert,and,%,',_,这些都屏蔽了吧。

2.一般的sql注入都是从网站的前台网页寻找漏洞,建议针对前台操作和后台操作分别建立数据库操作用户。前台的用户只赋予实际需要的基本权限。后台用户可权限可以宽松些但也只能针对当前库。切不可用root级别的用户作数据库连接。否则数据丢了,你都没地方哭去。

3.用户登录表的密码一定要加密,如果可以也可将用户名一并加密。这是以防万一的最后手段,当对方看你的用户登录表的时候起码看到也不知道是什么。

4.jsp文件集中放到指定的文件夹下,如果你使用struts那么你可以将struts使用的文件放在WEB-INF目录下的某个文件夹中,因为该WEB-INF文件夹网站浏览用户是看不到的。

5.文件上传一定要做类型检查,一些jsp,php,asp等程序文件坚决不能让其上传。如果你用的是linux 下apache+tomcat 做的jk连接,你可以将文件直接上传到apache目录,或者用ln作软连接,万一对方上传了jsp文件你没判断出来,那么也是传到了apache目录下,你在jk指向中

将jsp文件指定到tomcat中某一文件夹,对方在浏览器中是无法访问上传的jsp文件的。

6.日志,建议增加服务的访问日志,记录来访者的IP,传递参数,对后台操作用户建立日志,记录其操作内容。完善的日志记录可以帮助你发现潜在的危险,找到已经发生的问题。

临时想到这么多,写的很粗糙以后再慢慢补充完善。最后忠告我的程序员朋友,做人要低调,做事要踏实,这年头随便一个网民登陆个黑客软件就没准吧你黑了。当你发现黑你网站的那个人不过是个业余网民,相信你一定有被小baby暗算,恨不能找块豆腐撞死的感觉。算了不说了,总之低级问题总会出在懈怠的时候,所以精神点。

【转】 java web开发之安全事项的更多相关文章

  1. Java Web开发中MVC设计模式简介

    一.有关Java Web与MVC设计模式 学习过基本Java Web开发的人都已经了解了如何编写基本的Servlet,如何编写jsp及如何更新浏览器中显示的内容.但是我们之前自己编写的应用一般存在无条 ...

  2. 【原创】三分钟教你学会MVC框架——基于java web开发(2)

    没想到我的上一篇博客有这么多人看,还有几位看完之后给我留言加油,不胜感激,备受鼓励,啥都别说了,继续系列文章之第二篇.(如果没看过我第一篇博客的朋友,可以到我的主页上先浏览完再看这篇文章,以免上下文对 ...

  3. [Java Web整合开发王者归来·刘京华] 1、 Java Web开发

      目录: 1.Web技术简介 2.动态网站与静态网站 3.Java Web开发模式 4.JavaScript简介 1.Web技术简介 PS: 最近还有更凶残的技术,即整个操作系统都是基于Web的,如 ...

  4. 个人的java web开发书单

    首发至个人博客http://www.zidafone.com/blog/36 以下是对一些读过的书和一些买后随便翻了翻的书的个人感觉.都是java web开发的程序员可能接触的书,其他的如设计/手机开 ...

  5. java web开发必备知识

    从各种招聘网站的要求上筛选出了一些java开发的一些基本的要求,对照自身看看有哪些缺陷. java基础 既然是java web开发,java SE肯定要学好了. 多线程,IO,集合等,对队列,缓存,消 ...

  6. Java Web开发之详解JSP

    JSP作为Java Web开发中比较重要的技术,一般当作视图(View)的技术所使用,即用来展现页面.Servlet由于其本身不适合作为表现层技术,所以一般被当作控制器(Controller)所使用, ...

  7. Java Web开发介绍

    转自:http://www.cnblogs.com/pythontesting/p/4963021.html Java Web开发介绍 简介 Java很好地支持web开发,在桌面上Eclipse RC ...

  8. 《Java web 开发实战经典》读书笔记

    去年年末,也就是大四上学期快要结束的时候,当时保研的事情确定了下来,终于有了一些空闲的时间可以学点实用的技术. 之前做数据库课程设计的时候,也接触过java web的知识,当时做了一个卖二手书籍的网站 ...

  9. 使用Eclipse+Maven+Jetty构建Java Web开发环境(几个教程综合集成2014发行)

    工作需要使用Jetty由于web集装箱,得知Eclipse+Maven+Jetty该组合是非常好的,因此,要在网上找了很多教程,但不写或多或少特定的或过时的内容而导致最终的配置失败,易于配置为未来的同 ...

随机推荐

  1. 连接WCF报EntityFramework.SqlServer 错误的解决方法

    现象: The Entity Framework provider type 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFram ...

  2. 关于asp.net的一点小问题有谁帮忙解答一下?

    public IList<Category> Categories { get; set; }        protected void Page_Load(object sender, ...

  3. win32记事本程序(一)

    我不会取标题,大体上我想用win32,模仿windows的记事本,写个记事本程序,最后让我的程序和微软的程序在外观和功能上都差不多.这样一来我可以学到一些新知识,巩固旧的知识. 一.首先做个菜单栏吧. ...

  4. Java的Package和Classpath

    Package 在Java中,Package是用来包含一系相关实例的集合.这些相关联的实例包括:类.接口.异常.错误以及枚举. Package主要有一些的几点作用: Package可以处理名字冲突,在 ...

  5. Struts2学习笔记

    一.struts2的工作原理 上图为struts整体结构. 1.客户端初始化一个指向servlet的请求: 2.请求通过一系列过滤器(其中的ActionContextCleanUp为可选过滤器,对st ...

  6. public/private/protected访问控制权限的区别

    //public/private/protected访问控制权限的区别//时间:2016/8/16 //(一)修饰成员: //public: 在类内.类外都能使用 . //protected: 在类内 ...

  7. "错误消息 401.2。: 未经授权: 服务器配置导致登录失败。"的解决办法

    [详细报错如下]: “/”应用程序中的服务器错误. 访问被拒绝. 说明: 访问服务此请求所需的资源时出错.服务器可能未配置为访问所请求的 URL. 错误消息 401.2.: 未经授权: 服务器配置导致 ...

  8. 通过BroadCast与service时时监听网络变化

    首先需要一个service: 这里我定义了一个NetworkStateService,在这个service中我写了一个BroadcastReceiver用于监听网络状态发生改变的情况并在这个servi ...

  9. javax.el.PropertyNotFoundException:

    javax.el.PropertyNotFoundException: Property 'ContextPath' not found on type org.apache.catalina.cor ...

  10. java压缩和解压字符串,Byte数组,String

    在网上找到的压缩解压的工具类,可以压缩String字符串 /*** * 压缩GZip * * @param data * @return */ public static byte[] gZip(by ...