网络与安全-安全

发布时间:2022-07-03 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了网络与安全-安全脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

1: 简要描述 HTTPS 的安全机制,描述 Http2 和 Https 的关系

     为什么 HTTPS 安全F1a;

            因为网络请求需要中间有很多的服务器路由器的转发。中间的节点都可能篡改信息,而如果使用 HTTPS,密钥 终点站 才有。https 之所以比 http 安全,是因为他利用 ssl/tls 协议传输。它包含 证书,卸载,流量转发,负载均衡,页面适配,浏览器适配,refer 传递等。保障了传输过程的安全性

Https 实现原理

           HTTPS 在通讯过程中的原理,总共分为 8 步 :

  •   1: 客户端发起 HTTPS 请求          2: 服务端的配置
  •   3: 传送证书                                   4: 客户端解析证书
  •   5: 传送加密信息                            6: 服务端解密信息
  •   7: 传输加密后的信息                     8: 客户端解密信息

    http2 和 https 的关系

  • HTTP 协议通常承载于 TCP 协议之上,在 HTTP 和 TCP 之间 添加一个安全协议层SSL 或 TLS),这个时候,就成了我们常说的 HTTPS。
  • 默认 HTTP 的端口号为 80;      HTTPS 的端口号为 443

2: 什么是点击劫持?如何范? 

原理:第三方网站通过iframe内嵌某一个网站,并且将iframe设置为透明不可见,将其覆盖在其他经过伪装的DOM上(使用定位的手段),伪装的可点击DOM(按钮等)与 实际内嵌网站的可点击DOM位置相同,当用户点击伪装的DOM时,实际上点击的是iframe中内嵌的网页的DOM从而触发请求操作

特点:用户自己做了点击操作;用户毫不知情; 

     最常见的是恶意网站:使用 <iframe> 标签(把我们自己含有重要的信息的网页:如交易页面)嵌入进去,然后把 iframe 设置透明用定位的手段,引诱用户在恶意网站上点击,这样用户在不知不觉中就进行了某些不安全的操作

    有两种方式可以防范:【 iframe会阻塞主页面的Onload事件 】

  • 1: 使用 JS 防范:

// 如果iframe 和 当前被嵌入的页面 不在同一域名下,则表示存在,非法网页嵌入的可能
 if (top.location.hostname !== self.location.hostname) { 
     alert("您正在访问不安全的页面,即将跳转到安全页面!"); 
     top.location.href = self.location.href; 
}
  • 2: 使用HTTP头防范: 

        1: 通过配置 nginx 发送 X-Frame-Options 响应头,这样浏览器就会阻止嵌入网页的渲染。

        2:  add_header X-Frame-Options SAMEORIGIN;


3: CSRF

      概念:CSRF 跨站点请求伪造  跟 XSS一样,存在巨大危害性,是一种对网站的恶意利用,尽管听起来像跨站脚本(XSS)。但是它与XSS非常不同【 XSS利用站点内的信任用户; CSRF通过伪装受信任用户的请求来利用受信任的网站】与XSS相比,CSRF 攻击不太流行(因此对其防范的资也相对较少),和难以防范,所以认为比 XSS 更具危险

    简单理解: 你可以这样来理解:攻击者盗用了你的身份,以你的身份发送恶意请求(如:发邮件,发信息,盗取你的账号,添加系统管理员,购买商品,虚拟货币转账),对服务器来说这个请求是合法的,但是却完成了攻击者想要的一个操作。如下:其中 Web A 为存在 CSRF漏洞的网站,Web B为攻击者恶意构建的网站,User C 为 Web A 网站的合法用户:

1: 用户 C 打开浏览器,访问受信任的 Web A 网站,输入用户名和密码请求登录网站 A

2: 在用户信息通过验证之后,网站 A 产生cookie信息 并返回给浏览器,此时用户成功登录网站 A, 可以正常向网站 A 发送请求

3: 用户未退出 网站 A 之前,在同一浏览器中,打开一个TAB页访问 网站 B

4: 网站 B 接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A

5: 浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带              cookie向站点A发送请求,站点A并不知道该请求是由网站B发起的,所有会根据用户C的        cookie信息 以C的权限处理该请求,导致来自网站B的恶意代码被执行

网络与安全-安全

怎么攻击别人 ??

 写一个自己的 网站A,网站里iframe嵌套一个别人的 网站B,完了以后我把我的 域名A-domain做 的很像 网站B的域名 B-domain,发给别人,别人误以为这是官方网站,进行 登陆 等一系列操作,我在页面中加上我自己的一些脚本就 可以通过他的cookie 执行很多操作!

<htML>
<head>
    <script tyPE="text/javascript">      
    function steal() {               
        iframe = document.frames["steal"];
        iframe.document.SubmIT("transfer");
    }    
    </script>
</head>
<body onload="steal()">
   <iframe name="steal" display="none">   
       <form method="POST" name="transfer" action="http://www.myBank.COM/Transfer.php"> 
           <input type="hidden" name="toBankId" value="11">
           <input type="hidden" name=";money" value="1000">  
       </form> 
   </iframe> 
</body>
</html>

参考链接:

       https://www.cnblogs.com/hyddd/Archive/2009/04/09/1432744.html

  预防CSRF方法

1: 验证 HTTP Referer 字段
2: 请求地址添加token,并校验
3: 在http请求头里面自定义属性,并校验
4: 通过验证码的方法 校验

特点 

  • 依靠用户标识危害网站
  • 利用网站对用户标识的信任
  • 欺骗用户的浏览器发送 HTTP 请求给目标站点
  • 另外可以通过 img 标签会触发一个 GET 请求,可以利用它来实现 CSRF 攻击。

 防御 

  • 就是在客户端页面增加伪随机数。
  • 通过 referer、token 或者验证码来检测用户提交。
  • 尽量不要在页面的链接中暴露用户隐私信息。
  • 对于用户修改删除等操作最好都使用 post 操作 。
  • 避免全站通用的 cookie,严格设置 cookie 的域

 4: XSS

     概念:XSS是一种经常出现在 web应用中 的 计算机安全漏洞,攻击者往 web页面插入恶意html标签 或者 javaScript 代码

    攻击场景:

如:1:攻击者在论坛里放一个看似安全的链接,骗取用户点击后,窃取 cookie 中的用户私密信息;

2: 攻击者在论坛中加一个恶意表单,当用户提交表单时,却把信息传送到攻击者的服务器中,而不是用户原本以为的信任网站 

3:  常见于前端的 input框 还有 console控制栏,我们将我们写好的脚本通过input标签注入,没有拦截过xss页面将会直接执行这些脚本。

真正的危险是: 当你的 脚本被 上传到服务端( 存在数据库 或 者缓存中,常见于 评论 等功能)当其他人请求此资源时,服务端就会将此脚本下发至客户端,客服端收到请求后,就会自动执行此脚本

它允许 恶意web用户 将代码(如HTML代码,客户端脚本)植入到 提供给其他用户使用的页面 中,攻击者利用 XSS 漏洞旁路掉访问控制-----同源策略,这种类型的漏洞由于被黑客用来编写危害性更大的网络钓鱼(Phishing)攻击,而变得广为人知,对于跨站脚本攻击,黑客界共识是:跨站脚本攻击是新型的  “缓冲区溢出攻击” , 而JavaScript是新型的ShellCode

示例:
<script>alert(document.cookie)</script>

   特点

        能注入恶意的 HTML/JavaScript 代码到用户浏览的网页上,从而达到 Cookie 资料窃取、会话劫持、钓鱼欺骗等攻击。 【 攻击代码不一定(非要)在 <script></script> 中】

   原因

  • 1:web浏览器本身的设计不安全,浏览器能解析和执行JS代码,但是不会判断该数据或程序代码是否是恶意的;
  • 2:输入输出是web应用最基本的交互,而且网站的交互功能越来越丰富;如果在这个过程中没有做好安全防护,很容易出现XSS漏洞
  • 3:开发人员没有相关的安全意识
  • 4:XSS攻击手段灵活多变

    危害

  • 1:  盗取各类用户账号:(登录账号,用户网银账号,各类管理员账号)、
  • 2:控制企业数据:(读取,篡改,添加,删除,企业敏感数据的能力)
  • 3:窃取企业重要的具有商业价值的资料
  • 4:非法转账
  • 5:强制发送邮件
  • 6:网页挂马(将 木马程序 下载到用户本地,并进一步执行,当木马获得执行之后,就意味         着会有更多的木马被下载,进一步被执行,进入一个恶性的循环,从而使用户的脑遭到攻击和控制)
  • 7:控制受害者机器向其他网站发起攻击

   如何防范

  • 1:  将重要的cookie标记为http-only,这样 JS语句中document.cookie 语句就获取不到cookie了,或者直接避免在cookie中泄露重要信息(如:邮箱,密码等)
  • 2:  对页面中的数据进行 Html Encode(编码)处理
  • 3:  尽量采用 POST 而非 GET 提交表单
  • 4: 表单数据规定值的类型:如 年龄必须是int,name:只能是数字加字母组合。。。
  • 5:  过滤 或 移除特殊的 html 标签:如:<script> , <iframe> ,  < for <,   > for >,   &amp;quot for,,,过滤JavaScript 事件标签:"onclick" , "onfocus" 等待

解析:参考资料:      https://www.cnbLOGs.com/phpstudy2015-6/p/6767032.html      https://www.cnblogs.com/443855539-wind/p/6055816.html      https://baike.baidu.com/item/XSS%E6%94%BB%E5%87%BB/954065?fr=aladdin

常见的攻击和预防汇总(内容非常精彩):   https://www.cnblogs.com/zhiying/p/11018331.html

5:  XSS 与 CSRF 有什么区别吗?

    XSS : 是获取信息 (不需要提前知道其他用户页面的代码和数据包)

    CSRF:是代替用户完成指定的动作(需要知道 其他用户页面的代码 和 数据包)

     完成一次CSRF攻击,受害者必须完成2个步骤:

            1: 登录 受信任的网站 A,并在本地生成 Cookie

            2: 在不登出 A 的情况下,访问 危险网站 B

6: 如何处理不让别人盗用你的图片,访问你的服务器资源?

   方法 1: 通过读取 http请求里的 header里面的referer信息 ,对refer做判断,看来源是不是自己的网站,不是就拒绝

HTTP请求中有一个referer的报文头,用来指明当前流量的来源参考页(访客是从什么渠道来到当前页面的。)
例如在www.sina.com.cn/sports/上点击一个链接到达cctv.com首页,
那么 referrer 就是 www.sina.com.cn/sports/了。
// 在Javascript中,
document.referrer来获取

   方法 2:  通过session校验,如果不通过特定服务生成 cookie 和session 就不能请求 得到资源

内容拓展:

        HTTP请求中的 referrer 报文: 可以告诉我们 不同渠道带来的流量的分布情况,还有用户搜索的关键词等,都是通过分析这个 referrer 信息来获取的。这个是非常重要的

脚本宝典总结

以上是脚本宝典为你收集整理的网络与安全-安全全部内容,希望文章能够帮你解决网络与安全-安全所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。