Home >Backend Development >PHP Tutorial >php面试常问的问题
一、MVC的优缺点
缺点:
1. 增加了系统结构和实现的复杂性,产生过多的更新操作,降低了运行效率。
2. 视图离不开控制器,妨碍了他们的重用性;
优点:
1. 开发人员可以只关注整体结构中的其中某一层
2. 降低层与层之间的依赖关系
3. 有利于标准化
5. 项目结构更清楚,分工更明确,有利于后期的维护和升级
二、面向对象的三个基本特征是啥?
1. 封装:将功能封装成一个个独立的单元,避免牵一发而动全身,方便对程序修改
2. 继承:代码重用,减少编码量,间接较少维护成本
3. 多态性:多态性是指允许不同类的对象对同一个消息做出响应
三、面向对象程序开发的优点:
1. 开发时间短,效率高,可靠性高,所开发的程序更强壮。由于面向对象编程的可重用性,可以在应用程序中大量采用成熟的类库,从而缩短了开发时间。
2. 应用程序更易于维护,更新和升级。继承和封装使得应用程序的修改带来的影响更加局部化。
四、xss跨站脚本攻击
攻击:
1. xss属于被动式且用于客户端的攻击方式
原理:攻击者向有xss漏洞的网站输入恶意的html代码,当其他用户浏览该网站时,这段html代码会自动执行,从而达到攻击的目的。
2. 攻击之前, 我们先找到一个存在xss漏洞的网站,xss漏洞分为两种,一种是DOM Based xss漏洞,另外一张是Stored XSS漏洞,所有课输入的地方没有对输入数据进行处理的话,都会存在xss漏洞,xss的危害取决于攻击代码的威力,攻击代码也不局限于script
防御:
1. 对用户的输入进行处理,只允许输入合法的值,其它值一概过滤掉
2. 我们不能对用户数据进行严格的过滤的时候,那我们就对标签进行转换