那些年我们一起写过的代码

在学校读书的时候,我仅仅写过非常简单的课程设计程序,今天回想起来还不算是编程入门的。我念大学的时候,从来没有想到有一天,我会以写程序谋生。我2009年7月份毕业,入职了广州华南理工大学科技园的一家智能交通行业的小公司,职位是软件工程师,主要的工作就是写代码。
刚进公司,我第一个任务就是做公司的网站。我的毕业设计就是做一个网站,不管是现在还是过去,我都觉得毕业设计很糟糕,糟糕到我后悔选那个题目了。那也算是有经验了吧,一到公司,我就刷刷开始写代码。有必要说明一下,我开发的网站架构,asp.net+sql server 2000,使用的开发工具是visual studio 2005。
毕业设计的时候,我只是做网站的后台,所以在进入公司开始写公司网站程序的时候,我就先从后台开始写了。我自己的工作安排是先完善后台的程序,可以实现文章的管理,然后再写网站前台。我想先从熟悉的东西开始做,才会比较有成就感,还能学到东西做前台的知识。
现在,我依然记得那时候写的代码。我增加一个网页aspx文件,就直接在页面的.aspx.cs里面写实现代码。数据库连接串写在web.config里面,用户名和密码都是使用明文的。先将控件拉到aspx文件上,在cs文件里面,我就直接写插入或者删除或者查询数据库的代码。

string connectionString = ConfigurationSettings.AppSettings["ConnectionString"];

        string title = this.TextBox1.Text.Trim();
        string content = this.TextBox2.Text.Trim();

        if (string.IsNullOrEmpty(title) || string.IsNullOrEmpty(content))
        {
            Response.Write("不能为空!");
        }

        using (SqlConnection conn = new SqlConnection(connectionString))
        {
            string sql = "insert into news(title,contenct)values(" + title + "," + content + ")";

            conn.Open();

            SqlCommand cmd = new SqlCommand(sql,conn);

            if (cmd.ExecuteNonQuery() < 0)
            {
                Response.Write("插入失败!");
            }
        }

我用了两个月终于把网站后台和前台开发完成,并让领导将网页内容发布好。我就租用了一个网络空间,开始发布网站。说起来还算是顺利的,可是因为我写代码的方式真的很糟糕,竟然收到sql注入攻击,恶毒的无耻的黑客竟然将数据的内容给我删除了,让我的网站数据空空如也。
我有思考过为什么我写的程序那么容易受到攻击,因为我执行数据库的语句没有过滤掉那些非法的字符啊,网页传什么内容我就直接操作什么东西。我没有使用参数的方式执行sql语句,这就是问题所在啊。
我的第一个作品或者任务,今天我都依然觉得很失败,没有做得更好。但是我却从这个任务中学到很多东西。我开始关注重构,关注网站的安全,关注更多技术可以解决的问题。
重复的代码是让我无法忍受的东西。重复的代码带来很多问题,简单的程序也变得臃肿和难以维护,一出错就要改变所有的页面代码。臃肿的东西总是让我们很快定位问题所在,无法快速地处理bug。
网站安全。这个问题是我写的公司网站受到攻击的时候,我才关注的。我幸好开发了一个功能,叫做数据库备份和恢复。我将发布的内容备份起来,在网站遭受到攻击的时候,我迅速恢复我们公司的网站。但是,我更加关心的是,如何开发一个能够避免sql注入之类攻击的网站呢?那时候,我就开始用谷歌查询解决办法(我们那时候还可以使用谷歌),学到了解决问题的办法,就是要过滤网页传递的内容,或者使用参数的方式执行sql语句。
数据库事务处理的缺乏。我知道数据库有事务这个东西,却不知道在C#编程的时候也会用到。
写那些代码的时候,我刚大学毕业,如今我已经工作五六年了,已经知道避免当初的犯的错误了。谢谢那些代码,谢谢那个工作机会,她让我成长让我更加努力学习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

panliuwen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值