南京达内IT培训学校 |
这里给大家列出16中网站被攻击的方式,需要大家进一步的去了解。
1、命令注入(Command Injection)
2、eval注入(Eval Injection)
3、客户端脚本攻击( Insertion)
4、跨网站脚本攻击(Cross Site ing, XSS)
5、SQL注入攻击(SQL injection)
6、跨网站请求伪造攻击(Cross Site Request Forgeries, CSRF)
7、Session 会话劫持(Session Hijacking)
8、Session 固定攻击(Session Fixation)
9、HTTP响应拆分攻击(HTTP Response Splitting)
10、文件上传漏洞(File Upload Attack)
11、目录穿越漏洞(Directory Traversal)
12、远程文件包含攻击(Remote Inclusion)
13、动态函数注入攻击(Dynamic Variable Evaluation)
14、URL攻击(URL attack)
15、表单提交欺骗攻击(Spoofed Form Submissions)
16、HTTP请求欺骗攻击(Spoofed HTTP Requests)
SQL注入攻击
本文主要介绍针对PHP网站的SQL注入攻击。所谓的SQL注入攻击,即一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据。
SQL注入攻击(SQL Injection),是攻击者在表单中提交精心构造的sql语句,改动原来的sql语句,如果web程序没有对提交的数据经过检查,那么就会造成sql注入攻击。
SQL注入攻击的一般步骤:
1、攻击者访问有SQL注入漏洞的站点,寻找注入点
2、攻击者构造注入语句,注入语句和程序中的SQL语句结合生成新的sql语句
3、新的sql语句被提交到数据库中执行处理
4、数据库执行了新的SQL语句,引发SQL注入攻击
实例
数据库
CREATETABLE`postmessage`(
`id`int( 11) NOTNULLauto_increment,
`subject`varchar( 60) NOTNULLdefault”,
`name`varchar( 40) NOTNULLdefault”,
`email`varchar( 25) NOTNULLdefault”,
`question`mediumtext NOTNULL,
`postdate`datetime NOTNULLdefault’ 0000-00-0000: 00: 00′,
PRIMARY KEY( `id`)
) ENGINE=MyISAM DEFAULTCHARSET=gb2312 COMMENT=’运用者的留言’ AUTO_INCREMENT= 69;
grantall privilegesonch3.* to‘sectop’@localhost identifiedby’ 123456′;
//add.php 插入留言
//list.php 留言列表
//show.php 显示留言
页面 http://www.netsos.com.cn/show.php?id=71可能存在注入点,我们来测试
http://www.netsos.com.cn/show.php?id=71and 1=1
返回页面
一次查询到记录,一次没有,我们来看看源码
//show.php 12-15行
// 执行mysql查询语句
$query = "select * from postmessage where id = ".$_GET[ "id"];
$result = mysql_query($query)
ordie( "执行ySQL查询语句失败:". mysql_error);
参数id传递进来后,和前面的字符串结合的sql语句放入数据库执行 查询
提交 and 1=1,语句变成select * from postmessage where id = 71 and 1=1 这语句前值后值都为真,and以后也为真,返回查询到的数据
提交 and 1=2,语句变成select * from postmessage where id = 71 and 1=2 这语句前值为真,后值为假,and以后为假,查询不到任何数据
正常的SQL查询,经过我们构造的语句之后,形成了SQL注入攻击。通过这个注入点,我们还可以进一步拿到权限,比如说运用 union读取管理密码,读取数据库信息,或者用mysql的load_file,into outfile等函数进一步渗透。
防范方法
整型参数
运用 intval函数将数据转换成整数
函数原型:
int intval(mixed var, int base)
var是要转换成整形的变量
base,可选,是基础数,默认是10
浮点型参数
运用 floatval或doubleval函数分别转换单精度和双精度浮点型参数
函数原型
int floatval(mixed var)
var是要转换的变量
int doubleval(mixed var)
var是要转换的变量
字符型参数:
运用 addslashes函数来将单引号“’”转换成“’”,双引号“"”转换成“"”,反斜杠“”转换成“”,NULL字符加上反斜杠“”
函数原型
string addslashes (string str)
str是要检查的字符串
那么刚才出现的代码漏洞,我们可以这样修补
// 执行mysql查询语句
$query = "select * from postmessage where id = ".intval($_GET[ "id"]);
$result = mysql_query($query)
ordie( "执行ySQL查询语句失败:". mysql_error);
如果是字符型,先判断magic_quotes_gpc能无法 为On,当不为On的时候运用 addslashes转义特殊字符
if(get_magic_quotes_gpc)
{
$var= $_GET[ "var"];
}
else
{
$var= addslashes( $_GET[ "var"]);
}
互联网公司井喷式增长,人才需求急切,大型公司上门招聘PHP工程师!
PHP软件工程师的前景和未来?
点击咨询Nignx
THinkphp
YII框架
Nosql
Smarty
PHP7.0
HTML5
CSS3
jQuery
PHP+
PHP+打通了WEB开发的前后端,PC及移动端,让php工程师不仅可以开发网站更可以开发APP
达内始终贯彻实战组合授课,实现真正"实战授课",学员在报名时与达内签订《指定授课讲师承诺书》坚决杜绝宣传讲师与实际授课讲师不一致情况,确保学员利益。
从PC到移动,十余个核心项目实战开发、跨端开发,独立空间域名项目上线
基础差学不会?
学历低、基础弱学不会? 针对低学历的学员开设辅导班,从较基础的电脑操作教起,项目经理辅导。
上课听不懂?
上课时项目经理全程陪同,有任何听不懂的地方,举手示意,项目经理会时间为您解疑答惑。
晚自习求辅导?
晚自习有问题害怕找不到老师解答?项目经理晚自习时也会陪在你身边,进行当天知识点串讲及难点辅导。
学习效果不理想?
晚自习有问题害怕找不到老师解答?项目经理晚自习时也会陪在你身边,进行当天知识点串讲及难点辅导。
学习管理
每月根据学员学习进展,进行针对性访谈与指导,调整学员各阶段心态,确保学习进度。
模拟面试
对学员进行简历指导及多轮模拟面试,从简历、技术、人事、作品四个层面助你提升,帮你成功面试。
课外提升
周末邀请业界、公司总监、学长学姐、教学总监与你面对面,帮你拓视野、拓人脉。
入职指导
入职后遇到难题怎么办?我们每月一次求职训练营、老师微信QQ随时在线帮你解决,助你升职加薪。
尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/news/132017/违者必究! 以上就是南京达内IT培训学校 小编为您整理南京那么多PHP培训学校哪家好的全部内容。