网络安全是一个文字游戏
主动与被动攻击
所谓主动攻击,是指攻击者直接攻击web服务器
sql注入攻击即是主动攻击的代表例子
被动攻击是指,攻击者并直接攻击服务器,而是针对网站的用户设下陷阱,利用掉入陷阱的用户来攻击应用程序
模式1:浏览恶意网站,得到恶意html,感染病毒
模式2:非法操作进入正规网站设置陷阱,客户浏览网站,得到恶意html,敢让病毒,信息泄露非法操作
非法操作可视为被动攻击的前提准备
模式3:跨站脚本攻击,此类攻击的特征为,恶意利用已经在正规网站登录的用户账户来实施攻击。跨站请求伪造(CSRF),跨站脚本攻击(XSS)和HTTP消息头注入攻击
在正规网站中设置陷阱的四种手法
非法获取FTP等服务器的密码后篡改网站内容
通过攻击web服务器的安全隐患来篡改网站内容
通过sql注入攻击来篡改网站内容
在社交网络这类用户能过自己发布内容的网站上,利用跨站脚本漏洞实施攻击
浏览器如何防御被动攻击
浏览器和网站都需要采取相应的防御措施,前提是浏览器不存在安全方面的问题。如果浏览器存在安全问题,网站方面即使实施了对策也无法完全确保安全性
浏览器安全功能1
只有在用户确认了程序的发行方并且允许运行的情况下,程序才能被运行
提供限制程序权限的沙盒环境 --禁止访问本地文件,禁止使用打印机等资源(可以显示页面),限制网络访问(同源策略)
同源策略
同源条件
url的主机(FQDN,全称域名)
Scheme(协议)一致
端口号一致
XSS其实是一种恶意代码的反弹攻击
可以使用一些特殊的手段将JavaScript放到iframe的内层去执行,由于在iframe内层不会受到同源策略的限制,因此就能够成功访问文档信息,这种攻击就叫作跨站脚本攻击(XSS)
(2)把代码发送给有漏洞的网站
(3)恶意代码会从这个网站反弹到用户
(4)执行恶意代码,并把敏感信息发送给攻击者
web应用的功能与安全隐患的对应关系
经过浏览器 可能会出现 跨站脚本http头注入
经过db/SQL 可能会出现sql注入
输出到外部命令 可能会出现os命令注入
输出到邮件 可能会出现os命令注入
输出到文件 可能会出现路径遍历
关键处理 CSRF
认证 会话固定,认证漏洞
授权 授权漏洞
处理过程与输出过程会产生安全隐患
输入过程一般不会产生安全隐患
输出过程产生的安全隐患的名称中多数都带有“注入”
注入隐患(1)
web应用中传递的信息多数为文本格式。html、http和sql等支撑web应用的技术多数都采用了文本格式的接口
web应用的普遍形式为,首先确定文本的框架结构,然后再将数据填入其中
数据部分会通过使用引号(单引号或双引号)或使用被称为分隔符的符号(逗号、tab或换行符等)隔开的方式加以区分
注入隐患(2)
$id以外的部分即事先确定的文本结构。然而应用存在安全隐患,就能够更改sql语句的结构。