我新建了个“order.rb”文件,先写类定义:“Ruby是面向对象的,我们定义个 Order类,包含客户姓名、订单金额这些属性。你看,‘attr_accessor :name,:amount’这行,就能自动生成 getter和 setter方法,不用像 Java那样写一堆函数。”
Eva跟着敲键盘,手指偶尔会按错键:“为什么这里要用‘ @name’而不是‘name’?”
“@开头的是实例变量,只有这个 Order对象能访问。”
我指着屏幕,“比如你创建一个订单‘order1 = Order.new’,order1的@name和 order2的@name是分开的,不会混在一起。”
接下来连数据库。
我打开 mysql-ruby 2.4.1的驱动包,教她写连接代码:“‘Mysql.new (localhostadmincwpc2001chinafashion)’这行,依次是服务器地址、用户名、密码、数据库名。要记得加异常处理,不然数据库断连时,用户会看到一堆乱码。”
她试着写了段提交订单的代码,运行时却报错了。
我凑过去看,发现她把“INSERT INTO orders (name, amount) VALUES (#{@name},#{@amount})”里的引号写错了——字符串变量要加单引号,数字不用。
“你看,要是客户姓名里有单引号,比如‘ONeil’,这段代码就会报错。”
我帮她改成参数化查询,“用‘prepare’方法,把变量当参数传进去,就能避免这个问题,还能防 SQL注入——以后写代码都要这么写。”
半个月后,Eva能独立写用户注册、订单查询的模块了。
有天晚上,她运行代码成功调出最新订单时,兴奋地拍了下桌子:“原来 Ruby这么简单!比我大学学的 C语言好懂多了。”
我看着她屏幕上整齐的代码,突然觉得这几个月的周末,比做任何技术项目都有意义。
某个周末天河航空商务酒店,
我和 Eva刚吃完广式晚茶,就把笔记本电脑接到房间的拨号网络上。
她点开“中国时装网”的订单页面,屏幕却跳出乱码,夹杂着“OR 1=1--”的字符。
“怎么回事?”
Eva的声音有点慌。
我立刻远程登录服务器,打开 Apache的 access.log——里面全是异常请求,比如“/order.php?id=1 OR 1=1--”。
“是 SQL注入。”
我快速切换到 MySQL命令行,输入“SELECT * FROM orders WHERE id =1 OR 1=1--”,果然查出了所有订单数据。
“攻击者用拼接 SQL语句的方式,绕开了登录验证。还好我们之前教你的参数化查询,大部分模块都防住了,只有老编辑写的查询页面没改。”
我先把有漏洞的页面下架,换成静态提示页,然后用 traceroute命令追踪攻击 IP。
“你看,这个 IP是 202.96.128.*,属于广州的电信网段——再查 WHOIS,是‘南方时装传媒’的,他们上个月刚做了类似的订单网站。”
Eva攥紧了拳头:“他们怎么能这么做?”
我没说话,打开屏幕录像,把 access.log里的攻击记录、IP追踪过程一一录下来,又导出数据库里的注入日志,压缩后加密:“这些都是证据,得交给国家安全部门——2001年《计算机信息网络国际联网安全保护管理办法》里明确说了,破坏计算机信息系统是违法的。”
我拨通了省公安厅网安总队的电话,说明情况后,他们让我们第二天去提交证据。
挂了电话,Eva靠在椅背上,眼神有点疲惫:“以后网站还会被攻击吗?”
我把她的笔记本拿过来,帮她更新了 Ruby的安全补丁:“放心,我会把所有模块都改成参数化查询,再装个入侵检测系统,有异常请求会实时报警。”
那晚我调试到凌晨三点,Eva在旁边帮我泡了杯速溶咖啡。
窗外的天河路灯火通明.
我看着屏幕上“订单系统恢复正常”的提示,突然意识到,这个网站不只是代码和数据,更是 Eva和同事们的心血.
我必须守住它。
周一
提交证据后,网安部门很快介入调查,南方时装传媒的技术负责人被约谈,攻击行为也停了。
但 Eva偶尔还是会盯着订单系统的后台日志发呆,问我:“要是他们换个 IP再来怎么办?”
我帮她在服务器上部署了防火墙,只开放 80端口和 MySQL端口,还把日志同步到羊城晚报集团的备份服务器:“以后每周我都来检查一次安全漏洞,你要是看到异常,随时给我打电话——不管几点。”
那天,Eva把我送下楼,手里拿着本签了名的《中国时装》:“网站现在每天有两百多个订单,都是你的功劳。”
我接过杂志,看到扉页上写着“致刘军:最靠谱的技术守护者”。
走到红棉树下,我回头看了眼她的身影——阳光洒在她的发梢,像那天第一次见面时一样。
只是我心里多了份牵挂:Eva以后会不会遇到更多技术麻烦?那些竞争对手会不会用更隐蔽的手段攻击网站?
我想,只要她需要,我随时都会回来,做她的技术后盾。
就像守护那个用 Ruby写出来的订单系统一样,坚定而执着。
喜欢人生何处是归途:花城网事三十年请大家收藏:(m.xtyxsw.org)人生何处是归途:花城网事三十年天悦小说网更新速度全网最快。