老杨说话的地方
  • 首页
  • 关于老杨
  • 博客时间
  • 文章分类
    • 人工智能
    • 人生感悟
      • 共产主义
      • 能量哲学
      • 自然辩证法
    • 信息技术
      • C#笔记
      • LaTex
      • Linux
      • RIME
      • Ubuntu&Debian
      • WordPress
      • 基于Java的B/S系统构建
      • 开源开发
      • 病毒相关
      • 编程的坏习惯
      • 网上办公系统
    • 往事随风
      • 我在大学那几年
      • 童年趣事
      • 精彩生活
    • 情感随笔
    • 文学创作
      • 小说
    • 生活记录
      • 博士进行中
      • 美国一年
      • 老杨学游泳
    • 评论杂谈
  • 留言本
我是老杨
张驰有度 宠辱不惊
  1. 首页
  2. 信息技术
  3. 编程的坏习惯
  4. 正文

编程的坏习惯之备份文件

2009年07月31日 5889点热度 0人点赞 12条评论

编程的坏习惯之备份文件

有一些文本编辑器,比如Editplus,Ultraedit等,默认有保存备份文件的功能,就是保存一个和原文件同名的.bak文件,出发点是好的,可以避免文件的误删,可是在做B/S系统时,这种方法却能造成很大的安全隐患。这篇文章我用一个例子进行Sql注入破坏数据库来演示这种安全隐患。

  1. 当然这里我要假设Editplus的自动备份功能并没有取消,而是自动生成了.bak文件,而我们没有意识到这种文件的危害,把这个文件一起拷贝到了我们的项目文件夹下(这种情况经常发生),假如说这个文件叫做insertuser.jsp,那么备份文件叫做insert.jsp.bak,我们把这两个文件放在同一个文件夹下,这时候你输入insert.jsp的地址,要保证这个文件能被访问;
  2. 如果我是一个黑客,我现在不按照套路出牌,我并不输入insert.jsp这个文件的地址,而是使用insert.jsp.bak这个地址来代替,那么我们可以看到,浏览器告诉我,我可以下载这个.bak文件;可能你会说:谁会想到要输入这个地址啊?可是这是安全隐患,你不会输入并不代表黑客也不会输入,所有的安全隐患都是很隐蔽的,但是仍然被黑客们发现,所以,不要存在侥幸心理;
  3. 好了,我下载下载回来这个文件了,我使用文本编辑器打开,这时候我能够看到这个文件的全部内容,如果你的sql语句也是写在这个jsp页面的话,那么很可能是这样的:insert into userdata (……)  values (……),如果是这样的话,那好了,我就可以知道,你现在的这个数据库是用userdata这个表来存储用户的数据;
  4. 我们继续,如果你的系统同样提供了删除用户的功能,那么大概是这样子的deleteuser.jsp?id=3;这时候进入页面,然后你的sql语句这样写:delete from userdata where userid=3,相信我:绝大多数人都是这么写的;
  5. 最后我们来进行sql注入,在使用deleteuser.jsp?id=3来使用的,这时候我仍然不按照常理出牌,我手动进行输入,输入的格式如下:deleteuser.jsp?id=3 drop table userdata;我们来看一下最后的sql语句变成了什么:“delete from userdata where userid=3 drop table userdata”,在删除一个用户的同时,我把userdata这个表删除了!这是最基本的sql注入攻击,简单但是对于安全级别低的系统绝对适用,别的不说,我可以使用这个方法把我们从前做的大多数系统摧毁!

我们来看造成这种情况的条件(所有我列出的都是应该避免的):

  1. .bak文件,这个可以说是罪魁祸首,这个文件的下载直接导致了数据库的结构暴漏了,至少暴漏了很多重要的信息;(这个很容易避免)
  2. 把sql语句写在前台,我们在使用MVC之前一直这么做,这也是我们要把业务逻辑隐藏在bean里面的原因之一:安全!(在php中比较困难)
  3. 对于delete这样的逻辑,没有对其输入进行任何判断,至少我们应该看一下它是不是一个整数吧,可惜,我们没有。

因此我们要避免上述的情况,减少安全隐患。

标签: jsp 坏习惯 数据库 文件 编程 项目
最后更新:2026年11月02日
老杨

老杨

博士,非博学之士;讲师,讲所学所知。糊涂半生,虚度半世,唯愿平淡快乐,度过此生。

点赞

评论(12)

写下你的评论
  1. myonlystar
    myonlystar2009年08月01日 09:06

    学习了。。。

  2. 留个印儿
    留个印儿2009年08月02日 15:44

    SVN啊SVN,备份的习惯,文档的习惯大家一定要注意啊~

    1. 老杨
      老杨作者2009年08月02日 18:03

      @留个印儿 你说的整个跟我这篇文章没什么关系吧

  3. chanthon
    chanthon2009年08月02日 17:57

    可惜的是人人都有一定程度的上的侥幸心理。。

    你写的是编程的坏习惯,
    其实说的是生活中的坏习惯。

    1. 老杨
      老杨作者2009年08月02日 18:04

      @chanthon 差不多,这些都是相通的

  4. Hope
    Hope2009年08月07日 16:10

    踩一下,嘿嘿……

  5. 亦歌
    亦歌2009年08月24日 16:22

    不错,学习了,以前根本不太注意这个问题。

    1. 老杨
      老杨作者2009年08月24日 16:28

      @亦歌 一般不会出问题的

  6. ZY
    ZY2009年11月25日 21:10

    嘿嘿,学习了,继续写啊,这才是老大的风范,给我们铺平道路,

    1. 老杨
      老杨作者2009年11月26日 08:46

      @ZY 呃,我现在一直在怀疑你们到底能不能理解

      1. ZY
        ZY2009年11月26日 13:45

        @老杨 哈哈,不听老人言,吃亏在眼前,理不理解吃过亏就知道了,别那么无奈啊,感觉我们那么不懂事,

        1. 老杨
          老杨作者2009年11月26日 13:47

          @ZY 其实你们已经很懂事了

发表评论

选择代码语言
选好后在光标处插入代码块,把示例文字换成你的代码即可。

老杨

老杨

博士,非博学之士;讲师,讲所学所知。糊涂半生,虚度半世,唯愿平淡快乐,度过此生。

搜索
最新 热点 随机
简航:极简开源个人导航SimpleNav 关于机器人的发展 遥遥领先 开源密码生成工具SimplePassword 痛苦根源 同步日历-我的第一款鸿蒙应用(鸿蒙CalDav客户端) 别成为AI的奴隶 给阿嬷的情书 信息焦虑综合症 PUA
为多用户安装Anaconda及其使用方法WordPress主题发布:kratos_YangLaTex中上划线\overline和\bar的使用说明LaTex中设置字体的正确方法那一年,2009使用Windows7自带Windows Media Center播放RMVB影片幼儿园:回味童年童年趣事之气门芯这几天的事儿无插件实现WordPress留言本
时代的愚蠢 晴迷星途51曝光 用户最重要 给我死去的朋友 计划VS行动 美国人对中国人的种族歧视 雅可比迭代求解线性方程组C语言 横着长 是谁将你害成这样 Gitlab恢复数据(数据迁移)
最近评论
  • 实在抱歉,这两天比较忙,没看邮箱,没有名额了已经,再问问其他老师吧。
    老杨·1 周前·留言本
  • 老师你好,这学期考虑接毕设指导吗?具体可以老师您可以查看邮箱,申请已提交到邮箱
    BroMikey·1 周前·留言本
  • 感谢支持。可以买个鸿蒙设备玩玩
    老杨·3 周前·同步日历-我的第一款鸿蒙应用(鸿蒙CalDav客户端)
  • 没有鸿蒙设备,吆喝一声支持老杨的产品
    乱云/Akay·3 周前·同步日历-我的第一款鸿蒙应用(鸿蒙CalDav客户端)
  • 先从减少手机使用时间开始。
    shanshan·2 月前·信息焦虑综合症
  • 所以必须得自己下定决心痛改前非,而不是跟自己讲条件。
    shanshan·2 月前·第二青春计划失败
  • 这种平台挺多的,但是应该没啥用,能有啥情绪价值比躺着刷手机更好呢?
    老杨·2 月前·第二青春计划失败
  • 已经遇到了,额外支付了170,托运登机行李,还不是托运行李。
    老杨·2 月前·春秋航空让人长见识
  • 那很好,恭喜你
    老杨·2 月前·PUA
  • 可以尝试改变。
    老杨·2 月前·信息焦虑综合症
  • 现在很多人离开AI已经不知道怎么工作了。
    老杨·2 月前·别成为AI的奴隶
  • 建议开发一个适合P人的工作生活计划平台,完不成没什么惩罚、但是完成了有大大的情绪…
    shanshan·2 月前·第二青春计划失败
文章分类
选择分类
  • 人工智能13
  • 人生感悟121
    • 共产主义1
    • 能量哲学12
    • 自然辩证法12
  • 信息技术235
    • C#笔记6
    • LaTex12
    • Linux18
    • RIME4
    • Ubuntu&Debian21
    • WordPress1
    • 基于Java的B/S系统构建10
    • 开源开发3
    • 病毒相关3
    • 编程的坏习惯4
    • 网上办公系统9
  • 往事随风41
    • 我在大学那几年18
    • 童年趣事12
    • 精彩生活5
  • 情感随笔113
  • 文学创作69
    • 小说68
  • 生活记录220
    • 博士进行中6
    • 美国一年22
    • 老杨学游泳4
  • 评论杂谈169
关注公众号

COPYRIGHT © 2026 老杨说话的地方 版权所有

THEME KRATOS YANG Modified BY 老杨

鲁ICP备17014997号-4

鲁公网安备 37021302000754号