php开发面试题---PHP为什么不安全及常见的攻击方式(整理)
一、总结
一句话总结:
其实安全和语言关系不大,主要和程序员关系比较大,php也就是因为是弱类型语言,所以不如java健壮,php会遇到的问题(比如sql注入等),java也会遇到,java解决方案比较多而已
1、银行系统的开发,以及其他金融类型的开发为什么会使用java开发而不是用php?php为什么不安全?java又安全在哪些方面?
1.PHP是弱数据类型的语言,Java是强制类型的语言,数据类型要求更为严格,这一特性使得Java运行起来更为健壮。
2.PHP的require()包含文件,尤其是动态包含文件的时候,会有安全隐患。
3.Java各种体系解决方案比PHP要多,不过Java开发周期比较长,小的公司不会首选Java。
4.银行金融系统采用Java,有可能是因为Java现成的解决方案比较多,Java能做的大型金融系统,PHP也能做,而且一般来说相同的功能PHP的成本和周期比Java还短。
至于安全性,那就得看程序员了,比如SQL注入,PHP里面也能拼装字符串,也能造成SQL注入,如果采用PDO操作数据库,那么预处理绑定参数完全能解决SQL注入问题。
2、sql注入原理?
依赖用户输入做sql查询的位置可能被用户输入sql语句:比如用户查询的关键字输入框
比如用户查询的关键字输入框:输入你好:我们肯定是根据用户的输入数据作为关键词来在数据库中查找,比如select * from user where info like '你好';用户要是在你好那里拼接比如 or 1=1这样的就可以成功访问数据库
//比如 正常语句
$sql =”select * from phpben where user_name=’admin’ and pwd =’123′”;
//在用户名框输入’or’=’or’或 ‘or 1=’1 然后sql如下
$sql =”select * from phpben where user_name=’ ‘or’=’or” and pwd =” “;
$sql =”select * from phpben where user_name=’ ‘or 1=’1′ and pwd =” “;
3、php防sql注入的最基本函数?
addslashes 和stripslashes
4、Xss攻击是什么?
XSS:cross site script 跨站脚本,为什么不叫css,为了不和div+css混淆。
恶意web用户将代码植入到提供给其它用户使用的页面中:XSS是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。
5、Xss攻击的原理是什么?
反射型攻击(诱使用户点击一个嵌入恶意脚本的链接以达到攻击的目标,目前有很多攻击者利用论坛、微博发布含有恶意脚本的URL就属于这种方式)
持久型攻击(将恶意脚本提交到被攻击网站的数据库中,用户浏览网页时,恶意脚本从数据库中被加载到页面执行,QQ邮箱的早期版本就曾经被利用作为持久型跨站脚本攻击的平台)。
6、Xss攻击最简单示例?
9
10