3 年 PHPer 的面试总结

2017-09-11 09:13:58 +08:00
 jsyzchen
3 年 PHPer 的面试总结,都是大厂的面试题,值得收藏。
原文链接: http://coffeephp.com/articles/4?utm_source=v2ex
7862 次点击
所在节点    PHP
64 条回复
crazyworld825
2017-09-11 14:02:58 +08:00
@AlwaysBehave #37 按照我对这两者的了解,Session 比 Cookie 安全是因为 Session 存在服务器中,只能由服务端程序进行相关操作,Cookie 是存放在客户端(浏览器),是明文显示的,当然也可以进行相关的 hash 和加密,但是客户端是可见,使用 js 是可以对 Cookie 进行修改、读取、删除等一系列的操作,在后端程序中,可以将 cookie 设计为 HttpOnly,这样前端就无法使用 js 对 cookie 进行读写等操作,session 和 cookie 对应一般靠后端生成的唯一的一个序列( sessionid )来对应,这样就没办法窃取 cookie 进行 session 劫持,而且一般 cookie 被窃取,也没办法修改 session 的数据,都是由后台程序根据操作自动写入的吧
killerv
2017-09-11 14:06:44 +08:00
session 的安全性更高这个不太赞同,感觉没有什么安全性对比之说,如果这么说感觉就是对 cookie 的误解。cookie 就是传输数据给服务端的一种方式,只是在 header 里面而已。而 session 可以通过 cookie 匹配到用户 session。
jsyzchen
2017-09-11 14:15:51 +08:00
@sobigfish 只是 UI 没改,因为我是做 PHP 的,改 UI 比较麻烦,但 PHP 代码基本都重写了,我用的是 Phalcon 框架,phphub 用的是 Laravel,过几天会开源,敬请关注。
jsyzchen
2017-09-11 14:16:57 +08:00
@Lucups 好的,我再想想其他更好的方案
AlwaysBehave
2017-09-11 14:17:05 +08:00
@crazyworld825 唔,没想到在验证安全上有什么好处?
所谓说劫持,只要能拿到 cookie 就可以劫持登录状态吧,这个后台加密也是无能为力啊
对客户端可见难道不是正常?不理解有什么问题,防 XSS 用 HTTPONLY 这个点 okey
我还是没有看出来所谓安全在哪里,session 是为了识别用户,cookie 只是实现方式之一,类似的还有 JWT,我不认为这之间有什么可以对比的地方……
更何况没法修改 session 的数据的话这个…… cookie 加密了也可以储存啊,但是不是不赞同这样做吗

@killerv +1 感觉是哪里误解了
jsyzchen
2017-09-11 14:17:48 +08:00
@huage 方便统计而已,嘿嘿。,
jugelizi
2017-09-11 14:28:36 +08:00
@AlwaysBehave 曾见过有个开源系统登录的记住我的功能是把用户名和密码编码存在 cookie 里的.....
gouchaoer
2017-09-11 14:37:43 +08:00
这个题目很多有问题吧,那个过滤 js 的只是过滤 script 标签本身就是错的;那个秒杀系统更扯淡,要 2 个 tcp 来回而且对单 uid 重复提交没有过滤,你就算用 redis 集群所有的请求都打到一个 redis 的 list 上能撑住么……
Xrong
2017-09-11 14:37:58 +08:00
@huage 老哥敏感了点,23333333
usapla
2017-09-11 15:23:21 +08:00
好东西,学习了
crazyworld825
2017-09-11 15:30:44 +08:00
@AlwaysBehave #45 cookie 的产生是为了保持 web 浏览状态,可以存放服务器创建的信息,然后在请求的时候发送给服务器,正如#47 说的,有直接把用户名或密码等敏感信息放在 cookie 里面的,那都是客户端可见的;

#42 说 cookie 就是传输数据给服务端的一种方式,我们开发都会被提醒,不要相信客户端传过来的数据,要在服务端进行验证,那如果本来需要保存在 cookie 的数据可以直接保存在 session 中,是不是相对安全?

session 同时也是可以保存用户信息的,不过在服务器中;因为现在的浏览器都支持 cookie,所以一般都将 sessionid 写在 cookie 中进行身份的对应,形成了 cookie 和 session 一般成对使用的情况,在禁用 cookie 的情况下,是可以在链接后面加上相对应的 sessionid 也是可以工作的,如果分开来看,就保存数据而言,session 比 cookie 安全,这说法我觉得没问题。
wukongkong
2017-09-11 15:51:12 +08:00
@jugelizi 应该怎么写呢
jsyzchen
2017-09-11 16:01:06 +08:00
@gouchaoer 多谢反馈,我会及时修正
fanhan
2017-09-11 17:04:14 +08:00
7.如何快速寻找一个数组里最小的 1000 个数
感觉这个算法有问题,时间复杂度上比正常排序后取一千还慢
rr41ns
2017-09-11 17:59:14 +08:00
楼主好人
jsyzchen
2017-09-11 18:09:22 +08:00
@rr41ns 谢谢!
jsyzchen
2017-09-11 18:14:11 +08:00
@fanhan 嗯嗯,我的那种方法时间复杂度是 O(nk),不过可以改进,可以维护容量为 k 的最大堆,那样时间复杂度就变成 O(k)了
jsyzchen
2017-09-11 18:15:42 +08:00
@fanhan 维护容量为 k 的最大堆,时间复杂度应该为 O(logk)
a1044634486
2017-09-11 18:54:14 +08:00
这是 php 还是运维。。我晕了
jsyzchen
2017-09-11 19:30:49 +08:00
@a1044634486 哈哈,面试什么都问

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/389655

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX