2011年一次面试的实际记录

问题1.看你做过voip相关,你主要是做哪一部分
答:主要是做当中的计费部分,当时的整个系统使用的是gnugk做网守,最早都是计入到文本或者本地的mysql。
然后我发现gnugk里面有radius计费协议的整个栈,就把栈独立出来做了rts计费软件,用的oracle数据库,
再后来做了一个jsp的web管理系统,用来将详细数据展示给用户看。


问题2.你们的voip系统用的是什么协议,有没有做协议栈相关的改动。
答:用的h323协议,没有深入到协议栈里开发,仅仅是改动了gnugk中和计费相关的部分适应中国国情。
【实际上为了防止网通电信封杀小的voip运营商,改动了协议栈中的tcp/ip数据,令全部tcp/ip数据包都对密钥做了异或,
在client对收到的包先再做一次异或,之后才处理】


问题3.看你做过手机销售的站点,你在这个站点负责什么。
答:负责整个站点的设计与开发,当时选用的是ecshop做基础。


问题4.ecshop有很多暴露的漏洞,当时你们有没有做什么处理。
答:没有。
【其实有次整个站点的数据被人入侵删除,当时幸好写了每日备份脚本,否则非常慘】


问题5.看你当前工作的公司,cdn系统服务端用的LAMP,client用的是perl。client为何没有使用php。perl相对php有什么优势。
答:这个问题倒没有思考过,perl相对php的优势就是灵活机动,正则强大。php的优势就是老牌劲旅,库多參考多。
至于当时client为何用的是perl,推測是由于当时团队熟悉perl的比較多造成。
 
问题6.你对php内核有何了解
答:没有特意去了解,仅仅知道垃圾回收是依照资源计数器来管理。


问题7.你对linux内核有何了解
答:没有特意去了解内核,仅仅是对网络相关的了解较多。比如设置/etc/resolv.conf,route add -net加入路由,查找丢包,网络故障等。


问题8,你对epoll通讯机制有何了解。
答:比如老的apache不支持epool模式,则整个机器仅仅支持1024路通讯连接。新的不知道支持不支持。
lighttpd 支持epool模式,假设把ulimit放开到40960,则lighttpd能够支持40960路通讯连接。


问题9:这是表现,你对详细原理有何了解。
答:不使用epool模式好比管理员带着你一户一户的找人,epoll模式好比管理员手中有寻址单。这样大大提高效率。


问题10:这依旧是个例如,不是实质。
答:再往下没有深入。
【后来又看了看,实质应该是pool是select池,epool是增强的pool池,会依据事件异步唤醒池中须要处理事务的select线程。不知道理解的对不正确】


问题11.你对sql注入有何了解
答:仅仅在内部用的系统做过简单的sql注入防范,比如php中用ereg_replace去替换掉各种keyword,如select delete,和撇号等。替换为空。


问题12.这种方法非常土,假设同意用户输入delete,select等关键词呢
答:能够检查前后有无空格,然后检查下有会from关键词。厄,这样好像比較复杂。
【实际上,应该用addslashes等去检查替换输入词,避免产生各种注入 】


问题13.你跨域脚本攻击有何了解
答:假设我在某论坛布置了一个脚本引用,这时假设用户訪问这个论坛,而且脚本被载入。
我自己的站点就能够通过脚本的http链接信息,获得用户的cookie,有了cookie,我就能够伪装成用户了。


问题14.cookie在http信息的什么地方
答:http头里,头里有此字段。


问题15,假设给你2个文本,不使用diff,你怎样可以找出2个文本不同之处。
答:把第一个文本加载hash,每行的hash{$line}=0,对第二个文本做循环,假设行的hash存在则hash{$line}=1,假设不存在
则输出数据状态=2,全部数据被划分成0,1,2 三态。


问题16,除了这种方法你还能想出什么办法。
答:笨办法非常easy想,对第一个做循环,对第二个做grep,只是这样效率低会不好。


问题17,假设两个文件一个非常大一个非常小,你选择哪个加载hash
答:假设内存不崩溃的话,我选择大的加载,然后小的查找会非常快完毕。
假设小的加载hash,再循环大的,时间会花非常久。
除非内存不够用,否则我倾向把大的加载hash。


面试结论:你了解的东西比較多,但都不是特别深入。

你可能感兴趣的:(面试)