老杨说话的地方
  • 首页
  • 关于老杨
  • 博客时间
  • 文章分类
    • 人生感悟
    • 信息技术
    • 往事随风
    • 情感随笔
    • 文学创作
    • 生活记录
    • 评论杂谈
    • 人工智能
  • 留言本
我是老杨
张驰有度 宠辱不惊
  1. 首页
  2. 信息技术
  3. 编程的坏习惯
  4. 正文

编程的坏习惯之备份文件

2009年07月31日 5077点热度 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 坏习惯 数据库 文件 编程 项目
最后更新:2009年07月31日

老杨

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

点赞
订阅评论
提醒
guest

guest

12 评论
内联反馈
查看所有评论
ZY
ZY
游客
2009年11月25日 下午9:10

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

0
回复
老杨
老杨
作者
回复给  ZY
2009年11月26日 上午8:46

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

0
回复
ZY
ZY
游客
回复给  老杨
2009年11月26日 下午1:45

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

0
回复
老杨
老杨
作者
回复给  ZY
2009年11月26日 下午1:47

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

0
回复
亦歌
亦歌
游客
2009年8月24日 下午4:22

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

0
回复
老杨
老杨
作者
回复给  亦歌
2009年8月24日 下午4:28

@亦歌 一般不会出问题的

0
回复
Hope
Hope
游客
2009年8月7日 下午4:10

踩一下,嘿嘿……

0
回复
chanthon
chanthon
游客
2009年8月2日 下午5:57

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

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

0
回复
老杨
老杨
作者
回复给  chanthon
2009年8月2日 下午6:04

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

0
回复
留个印儿
留个印儿
游客
2009年8月2日 下午3:44

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

0
回复
老杨
老杨
作者
回复给  留个印儿
2009年8月2日 下午6:03

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

0
回复
myonlystar
myonlystar
游客
2009年8月1日 上午9:06

学习了。。。

0
回复

老杨

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

搜索
最新 热点 随机
最新 热点 随机
中国是不是体育强国? 成功的必备因素 关于华为 别再侮辱我的智商 春秋航空让人长见识 第二青春计划失败 第二青春计划 模型训练错误RuntimeError: expected scalar type Half but found Float 加载onnx模型进行推理 PyTorch模型转onnx格式
觉醒 周末了 虚拟和现实 被忽悠 男人好色 什么是优秀的博客 我在大学那几年(九) 文化代沟 终于结束了 回家喽
最新评论
  • 关于华为上的老杨确实,苹果手机系统还是有优势的。
  • 关于华为上的乱云AKAY自从换了苹果手机后,对手机再没以前那样热爱研究了,主要是系统省心。
  • 第二青春计划失败上的老杨第二都失败了,第三就算了吧。
  • 春秋航空让人长见识上的老杨应该提供一点水,至少给不想买水的人一个选择的空间。
  • 别再侮辱我的智商上的老杨那个很好,很值得。
  • 关于华为上的老杨Next系统基本没广告。大部分广告都可以关掉吧,我记得我写过一个文章,…
  • 第二青春计划失败上的xqiushi开始第三青春计划吧。
  • 春秋航空让人长见识上的xqiushi那个桌板能放下小米多看电子书,还是不错的。 这个矿泉水市面上没有,特供…
  • 别再侮辱我的智商上的xqiushi只投了那100亿的项目。
  • 关于华为上的xqiushi今年我爸的手机也换成华为,家庭里手机基本都是华为。最不满意的一点就是广…

Google java jsp linux QQ wordpress 中国 习惯 人生 公司 决定 博士 博客 同学 国家 大学 学习 实验室 家 小说 工作 开始 思考 情感 手机 技术 推荐 插件 数据库 文件 晴迷星途 朋友 生活 电影 相声 程序 笔记 网站 网络 置顶 美国 评论 软件 音乐 项目

关注公众号

COPYRIGHT © 2020 老杨说话的地方. ALL RIGHTS RESERVED.

THEME KRATOS YANG Modified BY 老杨

鲁ICP备17014997号-4

鲁公网安备 37021302000754号