php面试专题---20、MySQL的安全性考点

一、总结

一句话总结:

还是得多看视频,教程看的浮光掠影,容易get不到重点:比如预处理防sql注入之前是挺熟,后面就忘记了,而且看文章get不到点

1、SQL查询的安全方案?

1.使用预处理语句防SQL注入
2.写入数据库的数据要进行特殊字符的转义
3.查询错误信息不要返回给用户,将错误记录到日志

2、mysql预处理防sql注入实例?

|||-begin

delete from user where id=1;
GET ?id=1
user/delete/?id=1
user/delete/?id=1 or 1=1;
(delete from user where id=1 or 1=1) 预处理是先解析了delete from user where id=? 这句话,后面再有1 or 1=1进来,直接当做值了,不再解析这个or

|||-end

预处理就是预先解析sql语句,使那些插入进来的值的结构不再解析,比如 1 or 1=1中的or

3、MySQL的其他安全设置?

1.定期做数据备份
2.关闭远程访问数据库权限
3.修改root口令,不用默认口令,使用较复杂的口令
4.改变root用户的名称

1.定期做数据备份
2.不给查询用户root权限,合理分配权限
3.关闭远程访问数据库权限
4.修改root口令,不用默认口令,使用较复杂的口令
5.删除多余的用户
6.改变root用户的名称
7.限制一般用户浏览其他库
8.限制用户对数据文件的访问权限

4、为什么使用PDO和MySQLi连接数据库会比mysql函数库更加安全?

预处理防sql注入:PHP端尽量使用PDO对数据库进行相关操作,PDO拥有对预处理语句很好的支持的方法,MySQLi也有,但是可扩展性不如PDO,效率略高于PDO,MySQL函数在新版本中已经趋向于淘汰,所以不建议使用,而且它没有很好的支持预处理的方法。

二、内容在总结中

 

最新文章

  1. 初探AngularJS
  2. EasyUI datagrid 日期时间格式化
  3. java 执行 jar 包中的 main 方法
  4. perl 删除过期文件
  5. http协议梳理(个人学习用)
  6. oracle dbms_JOB
  7. C#中的继承
  8. SK-Learn使用NMF(非负矩阵分解)和LDA(隐含狄利克雷分布)进行话题抽取
  9. php 利用socket发送GET,POST请求
  10. java:利用数组实现将古诗词纵向输出
  11. Linq第二讲
  12. jqzoom插件
  13. Python之matplotlib学习(四)
  14. python_黑洞数
  15. 值得收藏!!javascript数组中多条对象去重方式,很实用!!!
  16. PHP工程师必备知识整理
  17. ubuntu安装rubyOnRails
  18. cookie注入原理
  19. [BZOJ4756]Promotion Counting
  20. c# DataTable行转列

热门文章

  1. 【ABAP系列】SAP 获取工单和工序的状态
  2. js 获取屏幕宽高
  3. 20191023 XXL-JOB
  4. linux下的SSHD被连接端口修改
  5. mysql 多表查询 以及 concat 、concat_ws和 group_concat
  6. dp(买票优惠)
  7. Codeforces 396C (DFS序+线段树)
  8. docker网络 macvlan
  9. Vue组件定义
  10. Codeforces - 1199D - Welfare State - 单调栈 / 线段树