web安全

web安全

几种攻击方式

■拒绝服务(DOS):通过请求,对服务器进行轰击使服务器不可用。

■社会工程:欺骗用户,使其自愿对网站的安全性做出让步(如:钓鱼)。

■权限升级:使代码在“特权”环境下运行(如:“root”)

■信息泄露:允许攻击者查看其不应该看到的数据、文件等。

■中间人:在网络中放置恶意机器并使用它来拦截流量。

■会话劫持:窃取另一个用户的会话cookie并伪装成那个用户。

■跨站点脚本( XSS )或HTML注入:将恶意HTML或

JavaScript内容插入到网页中。

■SQL 注入:插入恶意SQL查询代码以显示或修改敏感数据。

(一)信息泄露

➢当攻击者不被允许查看数据、文件等时,他/她却可以看到。

➢Web服务器上不应该存在的文件

➢或者过于慷慨的权限( 读/写给所有人)

➢列出其内容的目录(索引)

➢可以在Web服务 器上禁用

➢猜测文件、目录、资源的名称

➢看到loginfail.php,尝试loginsuccess.php

➢看到user.php?id=123, 尝试user .php?id=456

➢看到/data/public,尝试/data/private

(二)中间人攻击

■是一种“间接”入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为“中间人”。

1.信息篡改

➢当主机A和主机C通信时, 都由主机B来为其“转发”,而A、C之间并没有真正意思上的直接通信,他们之间的信息传递同B作为中介来完成,但是A、C却不会意识到,而以为它们之间是在直接通信。这样攻击主机在中间成了一个转发器,B可以不仅窃听A、C的通信还可以对信息进行篡改再传给对方,B便可以将恶意信息传递给A、C以达到自己的目的。

2.信息窃取

当A、C通信时,B不主动去为其“转发”,只是把他们的传输的数据备份,以获取用户网络的活动,包括账户、密码等敏感信息,这是被动攻击也是非常难被发现的。

安全HTTP协议(HTTPS)

■HTTPS: HTTP协议的加密版本

■客户端和服务器之间的所有消息都是加密的,所以中间的人不能轻易地读取它们。

■服务器可以用证书来验证他们的身份。

(三)会话劫持

■当攻击者获得你的会话ID并伪装成你时发生会话劫持。

■利用那些仅在初始登录时使用HTTPS的站点:

➢HTTPS:浏览器 →服务器(POST login.php)

➢HTTPS:浏览器← 服务器(login.php +PHPSESSID)

➢HTTP:浏览器→服务器(GET whatever.php +PHPSESSIDcookie)

HTTP:浏览器←服务器(whatever.php + PHPSESSID cookie厂)

■攻击者可以侦听网络,获取你的会话ID cookie, 并向具有相同会话ID cookie的同一服务器发出请求,以便伪装成你! 例子: Firesheep

(四)SQL注入攻击

■在Simpsons数据库中,查询的PHP代码是:

$query = "SELECT * FROM students WHERE username = '$username'ANDpassword = '$password"';

■密码: 'OR’1='1

■这导致查询被执行为:

 $query= "SELECT *FROM students WHERE username ='$username' AND password="OR'1'='1';

SQL注入的危害

■SQL注入可以:

➢更改查询以输出他人数据( 泄露私人信息)

➢插入查询修改现有数据(增加银行帐户余额等)

➢删除现有数据(; DROP TABLE students;-- )

➢扩大查询以减缓服务器( JOINa JOINb JOINc…)

SQL注入的预防

■类似于防止HTML注入,在将字符串包含在查询中之前,先对它进行转义

quote  ——返回字符串的SQL转义版本

$username = $db->quote($_ POST["username"]);

$password = $db->quote($_ POST["password"]);

$query = "SELECT name, ssn, dob FROM users

WHERE username = $username AND password=$password";

■转义字符处理中, 通常用(\’)替换’,并用引号括起来

(五)HTML注入

8ball.php?question= lololol

■注入的内容可能导致 :

➢烦恼/困惑

➢服务器上数据的损坏

➢在服务器上公开私有数据

➢财务损益

➢ 正如我们所知,人类的末日

为什么HTML注入不好?它允许其他人:

➢破坏网站的流量/布局

➢在HTML代码中添加不需要的东西

➢可能在用户计算机上运行恶意代码

(六)跨站点脚本(XSS)

■用户可以在页面中注入和执行任意JavaScript代码的缺陷

8ball.php?question=

■由于先前的HTML注入,JavaScript经常能够被注入。

■注入脚本代码可以:

➢伪装成原始页面并哄骗用户输入敏感数据

➢盗取用户的cookies

➢伪装成用户并代表他们提交数据(提交表单,点击按钮等

你可能感兴趣的:(安全)