文档章节

网络安全知识

o
 osc_w9s1w4o0
发布于 2019/04/03 15:57
字数 1870
阅读 10
收藏 0

精选30+云产品,助力企业轻松上云!>>>

网络攻击手段

Cookie & Session

  • Cookie
    1. 网站通过response设置Cookie给浏览器颁发证书,每次访问网站需要提交证书Cookie,网站负责检测证书
    2. Cookie不能跨域名,不同域名的网站不能相互操作Cookie
    3. Cookie保存在客户端,不像Session会占用服务器资源
  • Session
    1. Session是通过Cookie实现的,创建Session的时候会创建一个内容为SessionId的Cookie
    2. Session创建的Cookie的maxAge属性一般为–1,表示只在当前浏览器内有效,并且各浏览器窗口间不共享,关闭浏览器就会失效
    3. 两个浏览器窗口访问服务器时,会生成两个不同的Session
    4. 但是由浏览器窗口内的链接、脚本等打开的新窗口(也就是说不是双击桌面浏览器图标等打开的窗口)除外。这类子窗口会共享父窗口的Cookie,因此会共享一个Session。

SQL注入

XSS : 跨站脚本攻击

  • 概念
    1. 著名的SQL注入漏洞一样,利用了Web页面的编写不完善
    2. 攻击者向有XSS漏洞的网站中输入(传入)恶意的HTML代码,当其它用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的
    3. 所有可输入的地方没有对输入数据进行处理的话,都会存在XSS漏洞
    4. 通过XSS盗取用户Cookie、破坏页面结构、重定向到其它网站等。
  • 攻击方式
    1. DOM Based XSS
      1. 用户登录A
      2. 攻击者向用户发送带有自定义html代码或js脚本的网站A
      3. 攻击者通过这段代码盗取用户的网站A的cookie
    2. Stored XSS
      1. 网站A可以发表文章
      2. 攻击者发表带有攻击性的脚步的文章,保存到了服务器
      3. 任何阅读文章的用户的Cookie都回被盗取
  • 防御措施
    1. 输入验证:永远不相信用户的输入。需要对用户的输入进行处理,只允许输入合法的值,其它值一概过滤掉。
    2. Html encode: 对HTML标签进行转换
    3. 使用HTTP头指定类型: 很多时候可以使用HTTP头指定内容的类型,使得输出的内容避免被作为HTML解析

CSRF[Cross-Site Request Forgery] : 跨站域请求伪造

  • 概念
    1. 通过盗用浏览器没过期的Cookie来伪造身份
    2. 盗用你的身份,以你的名义发送恶意请求
    3. 利用的是网站对用户浏览器的信任
  • 攻击方法
    1. 用户登录受信任的网站A,产生Cookie
    2. 用户被骗登录危险网站B,此时没有登出A(平时多登出)
    3. B在用户不知情的情况下,发送请求访问A,B攻击了A
    4. 即使关闭浏览器之后,你本地的Cookie不能保证立刻过期
  • 防御措施
    1. 检查 HTTP 头部 Refer 信息,只接受来自本域的请求而忽略外部域的请求
      1. 不能防范来自本域的攻击
      2. 浏览器插件,非浏览器,比如用后台代码等方法,可以伪造一些 Refer 信息
    2. 使用一次性令牌
      1. 一个正确的令牌设计应该是使用 Session 信息做 Hash,用得出的哈希值来做 CSRF 的令牌。
    3. 使用验证图片
      1. 用是对于机器人暴力攻击的防止
      2. 有一些安全性要求比较高的的应用程序结合验证图片和一次性令牌来做双重保护
    4. 关键操作每次都输入密码

Session Fixation : 会话固定

  • 概念
    1. 他不是盗用Cookie里的信息,而是制造SessionId让用户创建他自定义的Cookie
  • 攻击方法
    1. 访问网站A,获得SessionId
    2. 诱导用户使用此SID访问并登录被攻击网站B:http://B/?SID=xxx
    3. 攻击者就能使用此SessionId进行操作
  • 防御措施
    1. 用户登录后强制实效当前session id,重新生成一个session替换原先的

Security Header integration : HTTP安全响应头

  • 现代浏览器提供了一些安全相关的响应头,使用这些响应头一般只需要修改服务器配置即可

Strict-Transport-Security

  • HSTS[HTTP Strict Transport Security] : Http严格安全传输
    1. strict-transport-security: max-age=16070400; includeSubDomains
    2. 服务器通过hsts头信息告诉浏览器,总是通过HTTPS来访问它,除了第一次访问,所有的http协议都会被转换成https
    3. 第一次通过http协议会进行302重定向成https,然后加上strict-transport-security头信息
    4. strict-transport-security会过期,在用户清楚浏览器缓存时会被清除
  • http和https
    1. https多了一个SSL层,有两个作用
      1. SSL依靠证书来验证服务器的身份
      2. SSL会给报文加密,通过证书交换对称密钥
    2. https的缺点
      1. 由于需要交换密钥,握手需要6,7个往返,耗时耗电
      2. ca证书要申请,要钱

X-Content-Type-Options: nosniff

  • 浏览器会根据响应头的Content-Type字段来分辨它们的类型
  • 例如:"text/html"代表html文档,"image/png"是PNG图片,"text/css"是CSS样式文档。
  • 这个响应头可以禁用浏览器的类型猜测行为,让攻击者无法利用类型猜测特性攻击网站

X-XSS-Protection

  • 浏览器提供的XSS保护机制,默认开启
  • 属性设置
    1. 0:禁用XSS保护;
    2. 1:启用XSS保护;
    3. 1; mode=block:启用XSS保护,并在检查到XSS攻击时,停止渲染页面
  • 保护机制并不完美,但是开启后仍然可以提升攻击难度,没有特别的理由,不要关闭它。

x-frame-options: SAMEORIGIN

  • 减少点击劫持,使得页面无法被嵌入到ifream/fream中,无法被别人利用
  • 属性设置
    1. DENY:不允许被任何页面嵌入;
    2. SAMEORIGIN:不允许被本域以外的页面嵌入;
    3. ALLOW-FROM uri:不允许被指定的域名以外的页面嵌入

SSL Certificate

概念

  • Secure Sockets Layer 安全套接层

文件

  • .jks文件
    1. jks 是 java 的 key store 文件格式. java 提供 keytool 工具操作jks.
    2. 用于存储证书(trust)或者签名(key)
  • 双向认证
    1. public key用于给对方加密,相当于给别人一把锁,private key用于解密,相当于钥匙, 这样自己就可以信任对方传输的内容没有被改变过
    2. private key用于签名,public key用于验证签名,这样对方就可以,对方给了签名,就可以信任内容就是对方给的
    3. 证书相当于对方的public key,可以用于认证对方的签名,并且可以用于加密,这样我就可以信任对方的身份,对方也可以信任我的内容
    4. 如果对方有自己的public key,再加上自己的签名,对方也加过密,就是双向认证
  • java使用KeyStore获取.jks文件中的证书和key
    1. 如果没有指定TrustManager,默认使用java到证书列表:$JAVA_HOME/lib/security/cacerts
    2. 如果指定了TrustManager,那么只会检查网站证书是否在TrustManager到证书列表中
    3. 指定KeyManager用于?

keystool

  • keytool -cacerts -storepass changeit -list
    1. 查看jvm下所有证书:路径java_home/jre/secure
  • keytool -cacerts -storepass changeit -delete -alias test.ipg-online.com
    1. 删除jvm某个证书
  • keytool -cacerts -storepass changeit -noprompt -trustcacerts -importcert -alias ipg-certificate -file WS4700000057._.1.cer
    1. 导入一个证书到jvm
  • keytool -importcert -keystore ipg-certificate.crt.jks -storepass 'Ca6z!7F:Ye' -alias test.ipg-online.com.crt -file test.ipg-online.com.crt
    1. 导入一个证书到.jks文件
o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
网络工程师详细介绍

网络工程师要具备的基本知识: (1)熟悉计算机系统的基础知识; (2)熟悉网络操作系统的基础知识; (3)理解计算机应用系统的设计和开发方法; (4)熟悉数据通信的基础知识; (5)熟悉系...

tsf7758
2007/06/28
0
0
因为网络安全的重要性打算学习linux

因为网络安全的重要性打算学习linux 互联网的普及,在给人们带来巨大便利的同时,也让人们感受到网络安全隐患带给人们的不安与威胁。尤其是随着计算机技术和网络技术应用范围的不断扩充,网络...

牛得一笔
2019/03/09
2
0
网络工程师考试说明

1.考试要求:   (1)熟悉计算机系统的基础知识;   (2)熟悉网络操作系统的基础知识;   (3)理解计算机应用系统的设计和开发方法;   (4)熟悉数据通信的基础知识;   (5)...

技术小甜
2017/11/09
0
0
因为网络安全的重要性打算学习linux

互联网的普及,在给人们带来巨大便利的同时,也让人们感受到网络安全隐患带给人们的不安与威胁。尤其是随着计算机技术和网络技术应用范围的不断扩充,网络安全方面存在的漏洞也越来越多,在这...

linuxCool
2019/03/07
15
0
因为网络安全的重要性打算学习linux

互联网的普及,在给人们带来巨大便利的同时,也让人们感受到网络安全隐患带给人们的不安与威胁。尤其是随着计算机技术和网络技术应用范围的不断扩充,网络安全方面存在的漏洞也越来越多,在这...

Linux就该这么学
2019/03/07
23
0

没有更多内容

加载失败,请刷新页面

加载更多

深入浅出Zabbix 3.0 -- 第二章 Zabbix Web操作与定义

第二章 Zabbix Web操作与定义 本章介绍Zabbix 中一些基本概念的定义和web前端页面的操作,包括Zabbix中使用的一些术语的定义,Web页面中用户管理、主机和主机组的管理,以及监控项、模板、触...

osc_5zaxkz1e
34分钟前
14
0
深入浅出Zabbix 3.0 -- 第一章 Zabbix 安装与配置

第一章 Zabbix 安装与配置 1.1 Zabbix 介绍 Zabbix是一个企业级的开源监控软件,可以监控IT基础架构的可用性和应用的性能,为用户提供集中管理、分布式监控的一站式(all in one)监控解决方...

osc_nvkeo9cj
35分钟前
10
0
PHP 实现抽奖逻辑

public static function get_rand($proArr) { $result = ''; //概率数组的总概率精度 $proSum = array_sum($proArr); //概率数组循环 forea......

chenhongjiang
35分钟前
18
0
struts2 上传 下载

东方部落: http://11144439.blog.51cto.com struts中上传文件功能小测试。这里jar是 2.5 版本。 项目结构图 废话不多说,直接代码。 2. web.xml配置 <?xml version="1.0" encoding="UTF-8......

osc_1qix3fyb
37分钟前
31
0
SVN管理系统安装及其操作

SVN管理系统安装及操作 防伪码:学习永远不晚! 前言: SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上...

osc_afifi2qt
38分钟前
24
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部