程序员面试必备PHP基础面试题 – 第二十一天

2020年3月29日 飞飞 阅读(485)

写在前面,今天是PHP基础面试题的最后一天,接下来我将整理中高级的面试题,这部分因为之前没准备好,而且工作比较忙,有可能做不到一天一更,还望大家担待。

一、解释一下PHP的类中:protect,public,private,interface,abstract,final,static的含义

Protected:保护的 在本类和子类中可以访问 在外部不可以访问
Public:公有的 在本类 子类 外部都可以访问
Private:私有的 在本类中可以访问 子类 外部都不可以访问
Interface: 声明一个接口时的关键字
Abstract:声明一个抽象类和抽象方法时的关键字
Final:使用final声明的方法是最终的,子类无法继承和重载
Static:定义静态方法和静态属性的关键字

二、解释:左连接,右连接,内连接,索引

內连接仅选出两张表中互相匹配的记录.因此,这会导致有时我们需要的记录没有包含进来。内部连接是两个表中都必须有连接字段的对应值的记录,数据才能检索出来。
左连接和右连接都是外部连接,也就是区别于内部连接,它对不满足连接条件的行并不是象内部连接一样将数据完全过滤掉,而是保留一部分数据,行数不会减少。
左连接是只要左边表中有记录,数据就能检索出来,而右边有的记录必要在左边表中有的记录才能被检索出来
右连接是只要右边表中有记录,数据就能检索出来;
全连接则会回返回两个表中的所有记录

三、如何进行防SQL注入

1、过滤掉一些常见的数据库操作关键字:select,insert,update,delete,and,*等或者通过系统函数:addslashes(需要被过滤的内容)来进行过滤。
2、在PHP配置文件中Register_globals=off;设置为关闭状态 //作用将注册全局变量关闭。
比如:接收POST表单的值使用$_POST[‘user’],如果将register_globals=on;直接使用$user可以接收表单的值。
3、SQL语句书写的时候尽量不要省略小引号(tab键上面那个)和单引号
4、提高数据库命名技巧,对于一些重要的字段根据程序的特点命名,取不易被猜到的
5、对于常用的方法加以封装,避免直接暴漏SQL语句
6、开启PHP安全模式Safe_mode=on;
7、打开magic_quotes_gpc来防止SQL注入
Magic_quotes_gpc=off;默认是关闭的,它打开后将自动把用户提交的sql语句的查询进行转换,把’转为\’,这对防止sql注入有重大作用。
因此开启:magic_quotes_gpc=on;
8、控制错误信息,关闭错误提示信息,将错误信息写到系统日志。
9、使用mysqli或pdo预处理。

未经允许不得转载:PHP学习网 » 程序员面试必备PHP基础面试题 – 第二十一天
分享到:

评论抢沙发

要发表评论,您必须先

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

扫码关注微信公众号

扫描关注微信公众号