`
izuoyan
  • 浏览: 9224944 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

9月19日培训日记

阅读更多
今天复习前面所讲解的JDBC基础知识,因为袁老师前两天刚讲解了SQL Server 2005数据库,所以,今天采用SQL Server 2005作为实验数据库。
首先现场演示如何获得SQL Server 2005的JDBC驱动程序,如何使用该驱动程序连接上目标数据库。接着编写一个较为完善的用户登陆程序:将jdbc连接串、户名、密码和驱动程序参数配置信息从源文件中独立出,在一个属性配置文件中进行设置,用一个Configurer类封装属性文件的信息读取。用一个DbHelper类负责获取连接、关闭结果集、关闭命令、关闭连接。
程序编写完成后,强调在配置文件中不要使用sa帐户连接数据库,而应该创建新帐户分配给客户端使用。采用新帐户以后,总是报告打不开数据库的错误,这需要把用户映射到数据库上。然后报告没有相应的操作权限,这还需要在数据库中设置用户对库中的表进行的操作权限。
演示完sql注入后,课后发现一些学员对sql注入的基本思想明白,但对其中的细节还一时想不太明白,最后让一些明白了的学员上台讲解,发现必须用下面很细致的过程进行分析,才能让所有学员明白:
(1)先讲登陆程序的处理思路
(2)然后分析不知道用户名和密码而能够登入的语句,画出每部分的结果,然后再是两两相与(或)的结果,最后得到整个where条件的结果
(3)最后讲输入怎样的用户名和密码,才能让程序中的sql语句拼凑成上面的语句,我画出框图插入的效果才让一位学员明白。
接着将程序改写成“先查用户名,再比较密码”的方式,这种情况下,无法再使用sql injection方式进行登陆了,并且可以判断出是用户名错误、还是密码错误,但是,这种方式也可以被不法用户利用,可以通过单引号让程序出错。
接着讲解如何对单引号进行替换,但一个新问题产生了:sql server和mysql的转义字符是不同的,这样的处理方式不具有通用性。讲解到这里时,我捕获到了一个很好的讲解举例:stmt,cn的关闭语句在什么时候可能不被执行,什么时候会发生后面的命令执行失败导致要事务回滚:人家采用sql注入导致程序出错,程序跑飞了的时候。
接着改用PreparedStatement改写上面两种登陆方式的程序,这时可以避免sql注入的问题,总结结论:
PreparedStatement可以防止sql injection,在我们脑海里,以后不要再有Statement,应该让Statement彻底从我们脑海里清除掉!
最后,再次讲解如何用模板方法模式和策略模式对程序进行重构。
作业:学员们应借鉴我讲解和实验的步骤,自己编写出这个较完整的登陆程序,并能想人讲解整个程序的设计和编写思路,最好是能将junit,log与ant全部应用起来。
分享到:
评论

相关推荐

    日记工具,日记软件,个人日记

    本软件起到了一个个人日记的功能。 日记记录的内容全部存放在tool\5b\artdiary.gtz下面,如果记录数量比较多的情况下,可以手工备份此文件,以免以外情况下丢失数据。 日记中的心情与天气,可以选择,也可以手工...

    爱日记多用户网络日记

    9、日记站后台管理目录为a,访问请直接用"域名/a",a目录可随意命名。建议后台管理目录。 10、日记后台管理分系统设置、管理员密码、用户管理、用户密码、日记管理和推荐管理几大块。 11、日记演示站 [七日记...

    唐骏日记,唐骏日记,唐骏日记

    《唐骏日记》是著名企业家、职业经理人唐骏的一部个人著作,它记录了唐骏在IT行业的职业生涯和个人成长的心路历程。唐骏作为中国IT界的标志性人物,他的经历和见解对于理解中国互联网和科技产业的发展具有重要的参考...

    (青春日记)多用户网络日记

    9、日记站后台管理目录为a,访问请直接用"域名/a",a目录可随意命名。建议后台管理目录。 10、日记后台管理分系统设置、管理员密码、用户管理、用户密码、日记管理和推荐管理几大块。 11、日记演示站 [ 青春日记],如...

    微信小程序 小熊的日记 (源码)

    微信小程序 小熊的日记 (源码)微信小程序 小熊的日记 (源码)微信小程序 小熊的日记 (源码)微信小程序 小熊的日记 (源码)微信小程序 小熊的日记 (源码)微信小程序 小熊的日记 (源码)微信小程序 小熊的日记 (源码)微信...

    Android代码-移动日记本功能包含传统的日记本和音频日记视频日记实现私密日记和普通日记。.zip

    总的来说,"Android代码-移动日记本功能包含传统的日记本和音频日记视频日记实现私密日记和普通日记"这个项目涵盖了Android应用开发的多个方面,包括UI设计、数据管理、多媒体处理、安全性和测试等核心知识点。...

    SAP 开发日记2SAP 开发日记2SAP 开发日记2SAP 开发日记2

    SAP 开发日记2SAP 开发日记2SAP 开发日记2SAP 开发日记2SAP 开发日记2SAP 开发日记2SAP 开发日记2SAP 开发日记2SAP 开发日记2SAP 开发日记2

    Dear Diary 桫椤日记

    这是一款仿真日记,也是我个人认为最优秀的日记。(用过效能日记等日记软件,但没有一款符合我心意,惟独这款日记深得我心) 喜欢写日记的人可以尝试,相信你们也会认同我的观点并喜欢上这款日记。 这是我最爱的一...

    (青春日记)多用户网络日记 v3.9.rar

    9、日记站后台管理目录为a,访问请直接用"域名/a",a目录可随意命名。建议后台管理目录。 10、日记后台管理分系统设置、管理员密码、用户管理、用户密码、日记管理和推荐管理几大块。 11、日记演示站 [ 青春日记],...

    微信小程序源码 小熊的日记(学习版)

    微信小程序源码 小熊的日记(学习版)微信小程序源码 小熊的日记(学习版)微信小程序源码 小熊的日记(学习版)微信小程序源码 小熊的日记(学习版)微信小程序源码 小熊的日记(学习版)微信小程序源码 小熊的日记(学习版)...

    DBA日记--署名

    例如,5月13日的日记可能涉及数据库性能监控和维护,5月18日可能讨论了RAC(Real Application Clusters)集群技术的应用,5月22日提到了ODS(Operational Data Store)系统和其在数据仓库中的角色,5月23日则深入讲解了...

    日记工具 记录生活点滴

    9. **源码获取与定制**:根据描述中提到的“需要源码请联系”,意味着这个日记工具可能是开源的,用户或开发者可以自定义功能,或者为项目贡献代码。 10. **开发技术**:制作这样的日记工具可能涉及到的技术包括...

    研发经理的日记(日记3篇)

    在阅读了这位研发经理的三篇日记后,我们可以从中提炼出一些关于软件开发与管理的重要知识点,这将对任何在IT行业中从事项目管理和技术领导的角色都有所启发。 首先,日记中可能涉及到了“代码”这一核心话题。作为...

    超漂亮的多用户网络日记

    9、日记站后台管理目录为a,访问请直接用"域名/a",a目录可随意命名。建议后台管理目录。 10、日记后台管理分系统设置、管理员密码、用户管理、用户密码、日记管理和推荐管理几大块。 11、日记演示站如测试日记站请...

    日记人asp多用户网络日记源码v3.8

    日记人多用户网络日记程序是一个漂亮精致的网络日记本,它界面美观、功能丰富、使用方便,包含了用户登录注册、日记本排行、日记搜索、日记管理、留言评论等功能,还有音乐播放、时钟日历、愿望小寺等小功能。...

    SAP 开发日记 SAP 开发日记SAP 开发日记

    SAP 日记SAP 日记SAP 日记SAP 日记SAP 日记SAP 日记SAP 日记SAP 日记SAP 日记SAP 日记SAP 日记

    小程序源码 小熊的日记 (代码+截图)

    小程序源码 小熊的日记 (代码+截图)小程序源码 小熊的日记 (代码+截图)小程序源码 小熊的日记 (代码+截图)小程序源码 小熊的日记 (代码+截图)小程序源码 小熊的日记 (代码+截图)小程序源码 小熊的日记 (代码+截图)小...

    (微信小程序毕业设计)小熊日记(源码+截图).zip

    (微信小程序毕业设计)小熊日记(源码+截图)(微信小程序毕业设计)小熊日记(源码+截图)(微信小程序毕业设计)小熊日记(源码+截图)(微信小程序毕业设计)小熊日记(源码+截图)(微信小程序毕业设计)小熊日记(源码+截图)(微信...

Global site tag (gtag.js) - Google Analytics